拉取mysql的镜像 docker search mysql docker pull mysql
通过镜像创建容器
这里先创建第一个容器作为master mysql -v /etc/mysql:/etc/mysql/conf.d 表示目录共享,目录提前创建好,第二个容器要目录不一样
docker run -d --name one_mysql -v /etc/mysql:/etc/mysql/conf.d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
进入容器
docker exec -it one_mysql bash
宿主机的配置文件
/etc/mysql/mysql.cnf
[mysqld] server-id = 1 log-bin = mysql-bin
进入容器后 show master status 查看下当前的状态,如果看到binlog日志是我们配置的文件名就说明我们配置成功了
创建第二个容器作为我们的slave mysql
docker run -d --name two_mysql -v /etc/mysql2:/etc/mysql/conf.d -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
宿主机的配置文件
/etc/mysql2/mysql.cnf
[mysqld] server-id = 2
进入容器
看看变量变了没有,如果已经是我们配置的就说明配置文件是成功的 docker exec -it two_mysql bash show variables like 'server_id';
开启主从复制
change master to master_host='172.17.0.3',master_user='root',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=155;
start slave show slave status
看到Slave_Io_Running:yes Slave_SQL_Running:yes 就可以了
修改密码的加密方式,因为默认的加密方式,主从复制的时候,从数据库连接不上 USE mysql; ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456'; FLUSH PRIVILEGES;
docker inspect 容器ID 查看该容器的IP
继续阅读与本文标签相同的文章
微信小程序实现点击改变icon的颜色样式
JavaScript 基础类型,数据类型
-
Docker 用ansible给主机安装docker
2026-05-18栏目: 教程
-
Docker centos7 with sshd (sshd centos7 常用镜像)
2026-05-18栏目: 教程
-
Docker 做资源限制
2026-05-18栏目: 教程
-
JavaScript 基础类型,数据类型
2026-05-18栏目: 教程
-
[MySQL] docker下安装使用mysql配置主从复制
2026-05-18栏目: 教程
