本机版本信息:
CentOS 7.6.1810 64bit
Docker 19.03.10
Mysql 8.0.20
一、Docker下载与安装
Docker 运行在 CentOS 7 以上,要求系统为64位、系统内核版本为 3.10 以上。
Docker 从 17.03 版本之后分为 CE(Community Edition: 社区版) 和 EE(Enterprise Edition: 企业版),安装CE版本就可以。
(较旧的 Docker 版本称为 docker 或 docker-engine 。如果已安装这些程序,需要卸载它们以及相关的依赖项。)
1、安装所需的软件包
yum install -y yum-utils device-mapper-persistent-data lvm2 |
2、设置软件源仓库
在新主机上首次安装 Docker Engine-Community 之前,需要设置 Docker 仓库。之后,您可以从仓库安装和更新 Docker。
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo |
更新 yum 缓存: yum makecache fast
3、 安装docker
yum -y install docker-ce |
4、查看版本
docker version |
5、启动docker
systemctl start docker |
二、创建镜像
拉取 MySQL 镜像
docker pull mysql |
格式:docker pull [OPTIONS] NAME[:TAG|@DIGEST]
tag默认最新版本,也就是latest
创建mysql主从文件
1、创建 master(主) 和 slave(从) 两个文件夹
mkdir /usr/ mkdir /usr/ |
2、在 master 和 slave 文件夹下 创建 Dockerfile 内容为:
FROM mysql
COPY my.cnf /etc/mysql/
EXPOSE 3306
CMD ["mysqld"]
3、在 master 和slave文件夹下 创建 my.cnf
master/my.cnf 内容:
[mysqld]
log-bin=mysql-bin //[必须]启用二进制日志
server-id=1 //[必须]服务器唯一ID,默认是1,一般取IP最后一段,这里看情况分配
slave/my.cnf 内容:
[mysqld]
log-bin = mysql-bin
server-id = 2
log-slave-updates = 1
read-only = 1
4、在 master 和slave文件夹下 创建data 目录用来保存数据文件的目录
创建镜像
切换到 master 目录下构建 mysql-master 镜像
docker build -t master/mysql . |
(命令最后有个.,不要忘记,代表当前目录)
然后切换到 slave 目录下构建 mysql-slave 镜像
docker build -t slave/mysql . |
(命令最后有个.,不要忘记,代表当前目录)
-t指定镜像名字,命令最后的点(.)表示Dockerfile文件所在路径
看是否创建成功:docker images
三、创建及运行容器
安装完成后,我们可以使用以下命令来运行 mysql 容器:
1、创建mysql-master容器并运行:
docker run -p 5116:3306 --name mysql-master -e MYSQL_ROOT_PASSWORD=123456 -v /home/mysql/master/data:/var/lib/mysql-files -d master/mysql |
2、创建mysql-slave容器并运行
docker run -p 5117:3306 --name mysql-slave -e MYSQL_ROOT_PASSWORD=123456 -v /home/mysql/slave/data:/var/lib/mysql-files -d slave/mysql |
3、查看运行的容器:docker ps
4、打开两个终端,分别进入mysql
(1)master 终端执行
docker exec -it mysql-master bash mysql -uroot -p |
输入密码 mysql 进入到 mysql 环境
(2)slave 终端执行
docker exec -it mysql-slave bash mysql -uroot -p |