docker compose mysql_使用Docker-compose部署MySQL测试环境

1.题目部分

使用docker-compose, 创建两个MySQL容器, 满足如下条件:

使用自定义的my.cnf

形成主从复制关系

容器销毁后, 主实例的数据仍保留, 从实例的数据清零销毁

重建两个容器, 主实例沿用之前的数据, 从实例重建数据, 并建立复制

2.解答部分

2.1 docker安装

docker-compose依赖docker环境,需要先安装好docker,本实验环境为在CentOS7虚拟机中安装docker,参考链接:https://docs.docker.com/install/linux/docker-ce/centos/

## 卸载旧版本的docker及相关组件

[root@10-186-61-162 ~]# yum remove docker \

docker-client \

docker-client-latest \

docker-common \

docker-latest \

docker-latest-logrotate \

docker-logrotate \

docker-engine

## 安装yum工具包及docker相关依赖包

[root@10-186-61-162 ~]# yum install -y yum-utils device-mapper-persistent-data lvm2

## 添加docker社区版的软件源(这里将软件源替换为了阿里云提供的软件源,加快镜像下载速度)

[root@10-186-61-162 ~]# yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

## 安装并启动docker-ce

[root@10-186-61-162 ~]# yum install docker-ce docker-ce-cli containerd.io

[root@10-186-61-162 ~]# systemctl start docker

[root@10-186-61-162 ~]# systemctl status docker

## 验证docker运行正常

[root@10-186-61-162 ~]# docker --version

Docker version 19.03.6, build 369ce74a3c

[root@10-186-61-162 ~]# docker run hello-world

Unable to find image 'hello-world:latest' locally

latest: Pulling from library/hello-world

1b930d010525: Pull complete

Digest: sha256:9572f7cdcee8591948c2963463447a53466950b3fc15a247fcad1917ca215a2f

Status: Downloaded newer image for hello-world:latest

## 有以下输出表示docker安装且运行正常

Hello from Docker!

This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:

1. The Docker client contacted the Docker daemon.

2. The Docker daemon pulled the "hello-world" image from the Docker Hub.

(amd64)

3. The Docker daemon created a new container from that image which runs the

executable that produces the output you are currently reading.

4. The Docker daemon streamed that output to the Docker client, which sent it

to your terminal.

To try something more ambitious, you can run an Ubuntu container with:

$ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:

https://hub.docker.com/

For more examples and ideas, visit:

https://docs.docker.com/get-started/

2.2 docker-compose 安装

docker-compose是一个用来编排多个容器的工具,我们可以编辑一个YMAL格式的配置文件,将多个容器的配置写入,使用compose工具来统一启停维护。安装参考链接:

## 直接使用官方链接提供的下载命令下载1.23.3版本docker-compose并保存到/usr/local/bin/docker-compose

curl -L "https://github.com/docker/compose/releases/download/1.25.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

## 对docker-compose增加可执行权限

chmod +x /usr/local/bin/docker-compose

## 验证docker版本

[root@10-186-61-162 ~]# docker-compose --version

docker-compose version 1.25.3, build d4d1b42b

2.3 docker-compose 配置

在编排前需规划好相关运行目录及my.cnf配置文件

## 创建docker-compose编排MySQL的系统目录便于维护管理

[root@10-186-61-162 mysql]# mkdir -p /data/docker-compose/mysql

## 在该目录下创建主从需要的文件及目录

[root@10-186-61-162 mysql]# pwd

/data/docker-compose/mysql

[root@10-186-61-162 mysql]# tree -L 2

.

├── docker-compose.yml ## MySQL主从编排的配置文件

├── master

│ ├── data ## master节点保留数据,数据用volumes的方式保留在宿主机本地,需要额外创建data目录

│ ├── init_sql ## 在MySQL初始化完成后需要执行的SQL文件目录,目录下包含创建的初始化用户、数据库、表及测试数据等。

│ └── my.cnf ## 自定义的MySQL配置文件

└── slave

├── init_sql

└── my.cnf

2.3.1 init.sql内容

master节点

创建一个repl用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值