1.说明
1.mysql镜像版本5.7
2.创建测试目录
mkdir /docker/mysql
3.切换到测试目录
cd /docker/mysql
4.创建数据目录
mkdir log data conf
5.启动容器
docker run --name m1 -p 3307:3306 -v /docker/mysql/data:/var/lib/mysql -v /docker/mysql/log:/var/log/mysql -v /docker/mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7

主机容器创建成功.png
6.创建配置文件
cd /docker/mysql/conf && vi my.cnf
[mysqld]
server_id=101
binlog-ignore-db=mysql
log-bin=mall-mysql-bin
binlog_cache_size=1M
binlog_format=mixed
expire_logs_days=7
slave_skip_errors=1062
7.重启服务
docker restart m1
8.进入容器
docker exec -it m1 /bin/bash
mysql -u root -p

主机登录成功.png
9.创建同步账户
create user 'slave'@'%' identified by '123456';
grant replication slave , replication client on *.* to 'slave'@'%';

创建同步账户.png
10.创建从服务测试目录
mkdir /docker/mysql1
11.切换到从服务测试目录
cd /docker/mysql1
12.创建从服务数据目录
mkdir log data conf
13.启动从服务容器
docker run --name m2 -p 3308:3306 -v /docker/mysql1/data:/var/lib/mysql -v /docker/mysql1/log:/var/log/mysql -v /docker/mysql1/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7

创建从服务器容器.png
14.编辑从服务配置
cd /docker/mysql1/conf && vi my.cnf
[mysqld]
server_id=102
binlog-ignore-db=mysql
log-bin=mall-mysql-bin
binlog_cache_size=1M
binlog_format=mixed
expire_logs_days=7
slave_skip_errors=1062
relay_log=mall-mysql-relay-bin
log_slave_updates=1
read_only=1
15.重启从服务
docker restart m2
16.登录主服务查看状态
show master status

查看主库状态.png
17.获取宿主机ip
ifconfig
18.登录从服务配置主从
18.1连接主库
change master to master_host='172.29.87.167', master_user='slave', master_password='123456', master_port=3307,master_log_file='mall-mysql-bin.000001',master_log_pos=617,master_connect_retry=30;
18.2查看主从状态
show slave status

从库连接主库.png
18.3开启主从
start slave

开启从库同步.png