Docker Compose初体验(Centos7中docker-compose安装MySQL+Redis)

2023-11-13

一、docker-compose介绍

官网介绍:

Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。

Compose 使用的三个步骤:

  • 使用 Dockerfile 定义应用程序的环境。
  • 使用 docker-compose.yml 定义构成应用程序的服务,这样它们可以在隔离环境中一起运行。
  • 最后,执行 docker-compose up 命令来启动并运行整个应用程序。

二、docker-compose安装

新版docker安装时会自带docker-cpomse,但是使用时,中间没有 “-”

安装命令

yum install -y yum-utils

yum-config-manager  --add-repo   https://download.docker.com/linux/centos/docker-ce.repo

yum install docker-ce docker-ce-cli containerd.io

启动docker并启动开机自启

systemctl start docker

systemctl enable docker

查看docker和docker compose版本

docker --version

docker compose version

在这里插入图片描述

三、docker-compose基本语法(新版docker)

  1. 启动容器(守护进程):
# 在测试目录中,执行以下命令来启动应用程序:
docker compose up

# 如果你想在后台执行该服务可以加上 -d 参数:
docker compose up -d
  1. 查看容器:
docker compose ps
  1. 重启容器:
docker compose restart
  1. 清理容器:
docker compose down

四、docker-compose安装常用软件

1、MySQL

初始化MySQL映射目录

mkdir -p /data/mysql
cd /data/mysql

mkdir db
mkdir conf
mkdir logs

编写docker-compose.yml文件

touch docker-compose.yml

vim docker-compose.yml
version: '3'
services:
  mysql:
    restart: always
	privileged: true
    image: mysql:8.0
    container_name: mysql8.0
    volumes:
      - ./db:/var/lib/mysql
      - ./conf:/etc/mysql/conf.d
      - ./logs:/var/logs
	  - ./mysql-files:/var/lib/mysql-files
    command:
      --character-set-server=utf8mb4
      --collation-server=utf8mb4_general_ci
      --explicit_defaults_for_timestamp=true
    environment:
      MYSQL_ROOT_PASSWORD: "12345678"
	ports:
      - 3306:3306
    network_mode: "bridge"

编写MySQL配置文件my.cnf

cd conf

touch my.cnf

vim my.cnf
###### [mysql]配置模块 ######
[mysql]
# 设置MySQL客户端默认字符集
default-character-set=utf8mb4

###### [mysqld]配置模块 ######
[mysqld]
port=3306
user=mysql

# sql_mode 是 MySQL 的一个系统变量,它控制了 MySQL 在执行 SQL 语句时的行为。
# STRICT_TRANS_TABLES:启用严格模式,当插入或更新数据时,MySQL 将拒绝任何不符合数据类型的数据。
# NO_ZERO_IN_DATE:当日期或日期时间字段中的值为 "0000-00-00" 时,MySQL 将抛出警告或错误。
# NO_ZERO_DATE:当日期或日期时间字段中的值为 "0000-00-00" 或 "0000-00-00 00:00:00" 时,MySQL 将抛出警告或错误。
# ERROR_FOR_DIVISION_BY_ZERO:当除数为零时,MySQL 将抛出错误。
# NO_ENGINE_SUBSTITUTION:当请求的存储引擎不可用时,MySQL 将抛出错误,而不是自动使用另一个可用的存储引擎。
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION

# MySQL8 的密码认证插件
default_authentication_plugin=mysql_native_password

# 禁用符号链接以防止各种安全风险
symbolic-links=0

# 允许最大连接数
max_connections=1000

# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB

# 表名存储在磁盘是小写的,但是比较的时候是不区分大小写
lower_case_table_names=1
max_allowed_packet=16M 

# 设置时区(按照实际情况填写)
default-time_zone='+0:00'

# binlog 配置
expire-logs-days = 90
max-binlog-size = 500M

# server-id 配置
server-id = 1

###### [client]配置模块 ######
[client]
default-character-set=utf8mb4

启动MySQL容器

cd ..

docker compose up -d

如果全部是复制进去的,因为格式问题,第一次运行可能会出错,用vim进去调整一下格式再运行。

先下载镜像再编译
在这里插入图片描述
启动成功
在这里插入图片描述
Navicat连接成功
在这里插入图片描述

2、Redis

初始化映射目录

mkdir -p /data/redis

cd /data/redis

mkdir data
mkdir conf

编写docker-compose.yml文件

touch docker-compose.yml

vim docker-compose.yml
version: '3' #设置docker compose 版本
services: #设置services
  redis:
    image: redis:latest  #镜像名称
    container_name: redis #容器名称
    restart: always  #重启docker引擎后该容器也重启
    ports:
      - 6379:6379 #本地端口号与容器内部端口号
    volumes: #指定挂载目录
      - ./conf/redis.conf:/usr/local/etc/redis/redis.conf:rw  #redis.conf文件和data目录分别映射了主机的redis.conf文件和主机的data目录
      - ./data:/data:rw
    command:
      /bin/bash -c "redis-server /usr/local/etc/redis/redis.conf " #使用command可以覆盖容器启动后默认执行的命令。这里启动执行指定的redis.conf文件

编写Redis配置文件

cd conf

touch redis.conf
vim redis.conf
protected-mode no
port 6379
timeout 0
save 900 1
save 300 10
save 60 10000
rdbcompression yes
dbfilename dump.rdb
dir /data
appendonly yes
appendfsync everysec
requirepass 123456

启动容器

cd /data

docker compose up -d

启动成功
在这里插入图片描述
连接成功
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Docker Compose初体验(Centos7中docker-compose安装MySQL+Redis) 的相关文章

随机推荐

  • tensorflow -- tf.gfile

    tf gfile他是一个操作文件的模块 他吧os glob shutil 这几个对文件操作的功能整合到了一起去 Copy 从一个目录的文件拷贝到了另一个目录 同shutil copy DeleteRecursively 以递归方式删除dir
  • 一文读懂如何快速查询中科院JCR分区和汤森路透JCR分区

    作为一个学术渣 突然心血来潮 想搞明白困扰很久的中科院分区和汤森路透分区到底是咋回事 曾经听人忽悠某某杂志几区 IF多少 说的云里雾里 感觉自己白活了这么多年 你是不是也有这种感觉 要是有那就对了 不用担心 看完这篇文章 保证让你彻底摆脱搞
  • java中求时间间隔(精确到分钟)

    long nowTime System currentTimeMillis System out print 现在的时间是 nowTime SimpleDateFormat dateformat new SimpleDateFormat y
  • Maven项目中右边的maven Projects中子项目出现灰色

    如图所示 Maven项目中右方查看的Maven Projects中子项目出现灰色 原因 忽略了maven模块 解决方法 在idea中maven的setting中找到ignored files 看右边的面板中是否将变灰的maven模块忽略了
  • SD卡、TF卡读写速率测试

    请注意 可以在未经过博主同意下转载 但必须注明出处 谢谢 1 运行HDBENCH软件 点击确定 2 弹出如下图所示界面 配置选项并测试 选择待测TF卡 Removable可移动存储设备 图示所插入的TF卡是 I 盘 请根据实际情况选择 选择
  • Qt的D和Q指针

    Qt的D指针和Q指针 实际上就是一个类的成员指针变量 改变量指向另一个Private类对象 这个Private类对象中包含了一系列的成员和函数 这样做的目的 1 可以对外隐藏数据内容 2 防止改变类的数据模型 从而做到二进制兼容 Q DEC
  • 微信分享签名无效php_【求助】微信分享朋友圈失效

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 document ready function var islogin islogin val var area id sessionStorage getItem list area id v
  • 基于径向基神经网络的数据回归预测及matlab实现

    基于径向基神经网络的数据回归预测及matlab实现 径向基神经网络 Radial Basis Function Neural Network RBFNN 是一种常用的人工神经网络模型 其结构简单 学习速度快 精度高 并且具有良好的适应性 泛
  • Linux 离线升级 pip

    首先在一台有网的地方下载 pip3 download pip i http mirrors aliyun com pypi simple trusted host mirrors aliyun com 然后将这个pip xxx none a
  • 用JS获取小数点后两位数字方法

    1 最笨的办法 1 function get 2 3 var s 22 127456 4 var str s substring 0 s indexOf 3 5 alert str 6 2 正则表达式效果不错 1
  • win7下安装rhel7(redhat enterprise Linux 7) 双系统

    首先需要的材料是 win7 rhel7 ISO镜像 和 EasyBCD 然后将磁盘格出3个分区 卷标分别是 I RHEL7 J GEN 和K SWAP 要注意格出来的三个分区都是FAT32格式的 NTFS Linux不认 我分的大小是I 1
  • 如何使用万用表测量三级管的阻值

    1 三极管是含有两个PN结的半导体器件 根据两个PN结连接方式不同 可以分为NPN型和PNP型两种不同导电类型的三极管 测试三极管要使用万用电表的欧姆挡 并选择R 100或R 1k挡位 假定我们并不知道被测三极管是NPN型还是PNP型 也分
  • 你现在需要知道的 C# 10 的 5+1 特性

    距离 C 10 正式发布仅剩两个月 微软开启了关于其 C 语言第十版的新特性和功能的讨论 这些增强功能是在C 10 0 Preview 7 中宣布的 微软将在下一版 C 10 中实现的功能和改进如下 记录类型可以密封 ToString 现在
  • ES底层原理知识(无代码篇)

    版本更新知识 ES 删除映射类型 爱码网 1 Index索引 包含了一堆有相似数据结构的文档数据 一个索引包含很多document 一个索引就代表一类相似或者相同的document 索引简单来说就相对于关系型数据库的库 2 Type类型 每
  • 小程序-picker组件的使用、数据回显

    picker组件的使用 通过点击picker选择器 触发bingchange绑定的事件函数 在picker组件自定义data i I 在事件函数中通过e target dataset i获取到data i里的值 这里的i代表数组中对象的下标
  • 09_Uboot启动流程_1

    目录 链接脚本u boot lds详解 U Boot启动流程详解 reset函数源码详解 lowlevel init函数详解 s init函数详解 链接脚本u boot lds详解 要分析uboot的启动流程 首先要找到 入口 找到第一行程
  • ABAP 基础语法

    表的声明的格式为 tables 表名 变量定义 其中 v1是变量名 l 是变量的长度 t是数据类型 d是小数位 xxx 是缺省值 data v1 l type t decimals d value xxx 定义了一个10位长度3位小数缺省值
  • 多年收集的一些稀有软件1

    QQ 365543212 PTC系列产品 PTC Creo 5 0 1 0 HelpCenter Full Multilanguage Win64 2DVD PTC Creo 4 0 M050 HelpCenter Full Multila
  • mysql 锁级别说明 一

    1 锁的类型 MySQL各存储引擎使用了三种类型 级别 的锁定机制 表级锁定 行级锁定和页级锁定 锁级别 存储引擎 表级别 table level MyISAM MEMORY CSV 行级别 row level inndb 页级别 page
  • Docker Compose初体验(Centos7中docker-compose安装MySQL+Redis)

    一 docker compose介绍 官网介绍 Compose 是用于定义和运行多容器 Docker 应用程序的工具 通过 Compose 您可以使用 YML 文件来配置应用程序需要的所有服务 然后 使用一个命令 就可以从 YML 文件配置