基于Docker的MySQL主从复制环境搭建

本机版本信息:

CentOS 7.6.1810  64bit

Docker 19.03.10

Mysql 8.0.20

一、Docker下载与安装

Docker 运行在 CentOS 7 以上,要求系统为64位、系统内核版本为 3.10 以上。

Docker 从 17.03 版本之后分为 CECommunity Edition: 社区版) 和 EE(Enterprise Edition: 企业版),安装CE版本就可以。

(较旧的 Docker 版本称为 docker 或 docker-engine 。如果已安装这些程序,需要卸载它们以及相关的依赖项。

1、安装所需的软件包

yum install -y  yum-utils  device-mapper-persistent-data  lvm2

 

 

2、设置软件源仓库

在新主机上首次安装 Docker Engine-Community 之前,需要设置 Docker 仓库。之后,您可以从仓库安装和更新 Docker。

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

 

 

更新 yum 缓存: yum makecache fast

3、 安装docker

yum -y install docker-ce

 

 

4、查看版本

docker version

 

 

5、启动docker

systemctl start docker

 

 

二、创建镜像

拉取 MySQL 镜像

docker pull mysql

 

 

格式:docker pull [OPTIONS] NAME[:TAG|@DIGEST]

tag默认最新版本,也就是latest

创建mysql主从文件

1、创建 master(主) 和 slave(从) 两个文件夹

mkdir /usr/mysql/master

mkdir /usr/mysql/slave

 

 

 

2、在 master 和 slave 文件夹下 创建 Dockerfile 内容为:

FROM mysql
COPY my.cnf /etc/mysql/
EXPOSE 3306
CMD ["mysqld"]

3、在 master 和slave文件夹下 创建 my.cnf

master/my.cnf 内容:
[mysqld]
log-bin=mysql-bin //[必须]启用二进制日志
server-id=1 //[必须]服务器唯一ID,默认是1,一般取IP最后一段,这里看情况分配

slave/my.cnf 内容:
[mysqld]
log-bin = mysql-bin
server-id = 2
log-slave-updates = 1
read-only = 1

4、在 master 和slave文件夹下 创建data 目录用来保存数据文件的目录

创建镜像

切换到 master 目录下构建 mysql-master 镜像

docker build -t master/mysql .

(命令最后有个.,不要忘记,代表当前目录)

 

基于Docker的MySQL主从复制环境搭建

 

然后切换到 slave 目录下构建 mysql-slave 镜像

docker build -t slave/mysql .

(命令最后有个.,不要忘记,代表当前目录)

 

-t指定镜像名字,命令最后的点(.)表示Dockerfile文件所在路径

看是否创建成功:docker images

基于Docker的MySQL主从复制环境搭建

 

 三、创建及运行容器

安装完成后,我们可以使用以下命令来运行 mysql 容器:

1、创建mysql-master容器并运行:

docker run -p 5116:3306 --name mysql-master -e MYSQL_ROOT_PASSWORD=123456 -v /home/mysql/master/data:/var/lib/mysql-files -d master/mysql

 

2、创建mysql-slave容器并运行

docker run -p 5117:3306 --name mysql-slave -e MYSQL_ROOT_PASSWORD=123456 -v /home/mysql/slave/data:/var/lib/mysql-files -d slave/mysql

 

3、查看运行的容器:docker ps

基于Docker的MySQL主从复制环境搭建

 4、打开两个终端,分别进入mysql

(1)master 终端执行

docker exec -it mysql-master bash
mysql -uroot -p

 


输入密码 mysql 进入到 mysql 环境

基于Docker的MySQL主从复制环境搭建

(2)slave 终端执行

docker exec -it mysql-slave bash
mysql -uroot -p

基于Docker的MySQL主从复制环境搭建

上一篇:HLSL语言基础


下一篇:Waf编译-基础