一、 当你安装完docker后,可以用行后打开cmd执行以下命令:
docker -v 查看版本
docker images 查看下载好的镜像
docker ps 查看跑起来的进程
这时候是没有进程的
二、 拉取mysql:
https://hub.daocloud.io/repos/fa51c1d6-9dc2-49d9-91ac-4bbfc24a1bda
这是mysql镜像地址可以选择mysql版本,我是选的 5.5
docker pull daocloud.io/library/mysql:5.5 拉取mysql5.5
三、 把准备好的主从镜像引入环境
(这里我是用的直接弄好的主从镜像)
进入放镜像的文件夹,执行:
docker load < slave (从)
docker load < master(主)
docker images 查看镜像
四、 启动mysql实例
docker run -p 3339:3306 --name master -e MYSQL_ROOT_PASSWOED=123456 -d 3b1
docker run -p 3340:3306 --name slave -e MYSQL_ROOT_PASSWOED=123456 -d 741
–name 为mysql的实例设置别名。 -p 3307为对外暴露的端口。3306是内部端口 。MYSQL_ROOT_PASSWOED=123456 这是连接mysql的密码
完成后
五、 docker exec -it master bash 进入容器(这是主容器)
mysql -uroot -p
密码
进入mysql后
授予用户 slave REPLICATION SLAVE权限和REPLICATION CLIENT权限,用于在主从库之间同步数据
CREATE USER 'slave'@'%' IDENTIFIED BY '123456';
GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'slave'@'%';
show master status;
File和Position字段的值后面将会用到,在后面的操作完成之前,需要保证Master库不能做任何操作,否则将会引起状态变化,File和Position字段的值变化。
上面的完成后再打开一个cmd
docker exec -it slave bash 进入容器(这是从容器)
mysql -uroot -p
密码
进入后
change master to master_host='172.17.0.2', master_user='slave', master_password='123456', master_port=3306, master_log_file='mysql-bin.000004', master_log_pos= 352, master_connect_retry=30;
master_log_file='mysql-bin.000004’这就是上图的File
master_log_pos= 352这是上图的position
show slave status \G;用于查看主从同步状态。
你会看到是NO,
start slave 开启主从复制过程,然后再次查询主从同步状态 show slave status \G;。
这就成功了
然后进行测试
主
从
这里的端口3339 3340是上面第四部设计的你可以在上面随便设计。
你在主库里键一个表填一个数据,在从库里相同位置查看如果有这代表成功。