使用Dockerfile制作容器镜像实现mysql的主从同步

PS:使用的基础镜像是以基础镜像为centos7,mysql版本为5.7的镜像文件制作而成的中文环境的镜像,制作过程略,已经上传至个人共有仓库

下述所有密码均设置为ABCD123!

一、master机器

1.Dockerfile制作

FROM crpi-e84rsvaq3ocb16xd.cn-hangzhou.personal.cr.aliyuncs.com/yjlz/mysql::5.7-CN       
RUN sed -ri '32i\server_id=1\ngtid_mode=ON\nenforce_gtid_consistency=1\nlog_bin=mylog' /etc/my.cnf && echo "grant replication slave,reload,super on *.* to slave@'%' identified by 'ABCD123!';" >> /docker-entrypoint-initdb.d/init.sql && echo "flush privileges;" >> /docker-entrypoint-initdb.d/init.sql
EXPOSE 3306
CMD ["mysqld"]

2.构建镜像文件

docker build -t mysql:matser-v1.0 .

3.容器启动

docker run -itd --name mysql_master --net host -e MYSQL_ROOT_PASSWORD=ABCD123! mysql:matser-v1.0

二、slave机器

 1.Dockerfile制作

FROM crpi-e84rsvaq3ocb16xd.cn-hangzhou.personal.cr.aliyuncs.com/yjlz/mysql:5.7-CN
RUN sed -ri '32i\server_id=2\ngtid_mode=ON\nenforce_gtid_consistency=1\nrelay_log_info_repository=TABLE\nmaster_info_repository=TABLE' /etc/my.cnf
RUN echo "CHANGE MASTER TO master_host='192.168.89.148',master_user='slave',master_password='ABCD123!',master_auto_position=1;" >> /docker-entrypoint-initdb.d/init.sql
RUN echo "start slave;" >> /docker-entrypoint-initdb.d/init.sql
EXPOSE 3306
CMD ["mysqld"]

2.构建镜像文件

docker build -t mysql:slave-v1.0 .

3.容器启动

docker run -itd --name mysql_slave --net host -e MYSQL_ROOT_PASSWORD=ABCD123! mysql:slave-v1.0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值