构建镜像过程
1. Master镜像构建
1. 下载并解压官网镜像文件
# wget https://codeload.github.com/docker-library/mysql/zip/master
# unzip master
# mkdir /home/lipuan/mysqlDockerFile
# cp -Rf mysql-master/5.7/Dockerfile /home/lipuan/mysqlDockerFile
# cp -Rf mysql-master/5.7/docker-entrypoint.sh /home/lipuan/mysqlDockerFile
# rm -rf mysql-master
# chmod +x docker-entrypoint.sh
2. Dockerfile中添加如下内容:
RUN sed -i '/\[mysqld\]/a server-id=1\nlog-bin=mysql-bin\nlog-output=TABLE\nslow_query_log=1\ngeneral_log=1' /etc/mysql/mysql.conf.d/mysqld.cnf
具体位置截图如下:

3. docker-entrypoint.sh中添加
echo "CREATE USER '$MYSQL_REPLICATION_USER'@'%' IDENTIFIED BY '$MYSQL_REPLICATION_PASSWORD' ;" | "${mysql[@]}"
echo "GRANT REPLICATION SLAVE ON *.* TO '$MYSQL_REPLICATION_USER'@'%' IDENTIFIED BY '$MYSQL_REPLICATION_PASSWORD' ;" | "${mysql[@]}"
echo 'FLUSH PRIVILEGES ;' | "${mysql[@]}"
具体位置如图:

到此位置Mysql Master镜像构建成功
2. 构建Mysql Slave 镜像
1. 下载官网镜像并解压
# wget https://codeload.github.com/docker-library/mysql/zip/master
# unzip master
# mkdir /home/lipuan/mysqlDockerFile
# cd ~
# cp -Rf mysql-master/5.7/Dockerfile /home/lipuan/mysqlDockerFile
# cp -Rf mysql-master/5.7/docker-entrypoint.sh /home/lipuan/mysqlDockerFile
# rm -rf mysql-master
# chmod +x docker-entrypoint.sh
2. Dockerfile中添加
添加下面内容:
RUN RAND="$(date +%s | rev | cut -c 1-2)$(echo ${RANDOM})" && sed -i '/\[mysqld\]/a server-id='$RAND'\nlog-bin=mysql-bin\nlog-output=TABLE\nslow_query_log=1\ngeneral_log=1' /etc/mysql/mysql.conf.d/mysqld.cnf
此处server-id用的是随机数
具体位置如下:

3. docker-entrypoint.sh中添加
添加内容如下 :
echo "STOP SLAVE;" | "${mysql[@]}"
echo "CHANGE MASTER TO master_host='$MYSQL_MASTER_SERVICE_HOST', master_user='$MYSQL_REPLICATION_USER', master_password='$MYSQL_REPLICATION_PASSWORD' ;" | "${mysql[@]}"
echo "START SLAVE;" | "${mysql[@]}"
具体位置:

3. 构建和上传镜像
3.1 构建Master镜像
[root@bogon slave
]
[root@bogon mysql5.7Dockerfile
]
[root@bogon master
]
/root/mysql_Dockerfile/mysql5.7Dockerfile/master
[root@bogon master
]
[root@bogon master
]
3.2 构建Slave镜像
[root@bogon slave
]
[root@bogon mysql5.7Dockerfile
]
[root@bogon slave
]
/root/mysql_Dockerfile/mysql5.7Dockerfile/master
[root@bogon slave
]
[root@bogon slave
]
3.3 上传镜像
[root@bogon master
]
[root@bogon master
]