docker简易搭建MySQL集群
docker 简易搭建mysql集群
一、安装PXC集群
1,docker pull percona/percona-xtradb-cluster:5.7.20
2,docker images //查看是否成功
二、重命名images
1,docker tag percona/percona-xtradb-cluster:5.7.20 pxc
2,docker images
3,docker rmi percona/percona-xtradb-cluster:5.7.20
//删除之前images
三、创建内部网络
说明:出于安全考虑,将PXC集群放置于docker内部网络中。
只需将宿主的端口与之映射并开放出来即可。
1,docker network create --subnet=172.18.0.0/24 net1
2,docker inspect net1 //查看net1详细信息
四、创建docker卷
docker容器的运行规则:通过目录映射的方法,将业务数据写入到宿主机中。好处是如果容器故障,只需将容器删除,重新启用一个容器即可,这样就不会丢失原来的数据。由于PXC较为特殊,无法直接使用映射目录的方法做映射(使用后会闪退),故使用docker卷。
1,docker volume create --name v1
3,docker volume create --name v2 v3 v4 ...
//不同容器使用不同docker卷
五、创建PXC容器
1,docker run -d -p 3306:3306 -v v1:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-e CLUSTER_NAME=PXC \
-e XTRABACKUP_PASSWORD=123456 \
--privileged \
--name=node1 \
--net=net1 \
--ip 172.18.0.2 \
pxc
说明:
-d 默认在后台运行
-p 3306(宿主):3306(容器) 端口映射,将容器3306端口映射到宿主3306端口
-v 目录映射,将第四步创建的v1映射到容器/var/lib/mysql
-e MYSQL_ROOT_PASSROWD 创建的用户实例的密码,默认实例root
-e CLUSTER_NAME 集群名称
-e XTRABACKUP_PASSWORD 数据库之间同步使用的密码
--privileged 权限.给予最高权限
--name 给容器容命名
--net 使用内部网段
pxc 指的是镜像
2,创建其他容器(依次创建)
docker run -d -p 3307:3306 -v v2:/var/lib/mysql
-e MYSQL_ROOT_PASSWORD=123456
-e CLUSTER_NAME=PXC
-e XTRABACKUP_PASSWORD=123456
-e CLUSTER_JOIN=node1
--privileged
--name=node2
--net=net1
--ip 172.18.0.3
pxc
六、验证是否创建成功PCX集群