docker 中搭建 mysql pxc 集群

 
一、docker中创建pxc 容器
1.拉取PXC 镜像  pull
docker pull percona/percona-xtradb-cluster:5.7.21
2.更改镜像名称为pxc tag docker tag percona/percona-xtradb-cluster:5.7.21 pxc
3.删除旧名称的镜像 rmi docker rmi percona/percona-xtradb-cluster:5.7.21e

 

二、容器内部创建网段

1.创建容器内部网段  通过映射方式事项外部访问  network create

docker network create net1 2.查看网段的信息
inspect
docker network inspect net1
3.删除网段信息 docker network rm net1

4.自定义创建网段 参数  --subnet
docker network  create  --subnet=172.18.0.0.1/24   net1

5.查看net1网段信息 inspect
 

 


 

 

三、创建docker 卷

1.创建docker 数据卷  (pxc  数据不能储存在容器里,必须储存在宿主机上,所以集群不能直接使用路径映射,必选创建数据券,再将数据券映射到宿主机的目录)

docker volume create --name v1


2.查看数据卷位置

docker inspect v1
可以看到数据券创建成功,"Mountpoint": "/var/lib/docker/volumes/v1/_data", 
创建PXC 数据库节点时只需要把这个是数据券在宿主机上的位置,只需要把v1 映射到宿主机的数据卷上就可以了

4.创建PXC 第一个容器


docker run -d -p 3306:3306 -v v1:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=abc123456 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=abc123456 --privileged --name=node1 --net=net1 --ip172.20.0.2 pxc


参数解释: docker run -d (启动容器在后台运行) -p 3306:3306 (断后映射前面为宿主机端口,后为容器端口) -v v1:var/lib/mysql (路径映射卷) -e MYSQL_ROOT_PASSWORD=abc123456 (数据库ROOT 用户密码) -e CLUSTER_NAME=PXC (容器名称) -e XTRABACKUP_PASSWORD=abc123456 (数据同步密码) --privileged (最高权限) --name=node1 (容器节点名称) --net=net1 (容器内部网段) --ip172.18.0.2 (内部网段对应的ip)
pxc 容器名

 

    4.1创建PXC 第二个容器


docker run -d -p 3307:3306 -v v2:/var/lib/mysql -e CLUSTER_JOIN=node1 -e MYSQL_ROOT_PASSWORD=abc123456 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=abc123456 --privileged --name=node2 --net=net1 --ip=172.20.0.3 pxc




参数解释:
docker   run  -d  (启动容器在后台运行)
 -p 3307:3306   (宿主机端口需要错开,后为容器端口)
 -v  v2:var/lib/mysql  (路径映射卷) 
-e MYSQL_ROOT_PASSWORD=abc123456  (数据库ROOT 用户密码)
-e CLUSTER_JOIN=node1   加入集群 和第一个容器节点数据库同步
 -e  CLUSTER_NAME=PXC  (容器名称)
 -e XTRABACKUP_PASSWORD=abc123456    (数据同步密码)
--privileged  (最高权限) 
--name=node2 (容器节点名称)
 --net=net1 (容器内部网段)
--ip172.18.0.3 (内部网段对应的ip  需要错开)
pxc   容器名

 

    4.2创建PXC 第三个容器


docker run -d -p 3308:3306 -v v3:/var/lib/mysql -e CLUSTER_JOIN=node1 -e MYSQL_ROOT_PASSWORD=abc123456 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=abc123456 --privileged --name=node3 --net=net1 --ip=172.20.0.4 pxc



参数解释:
docker   run  -d  (启动容器在后台运行)
 -p 3308:3306   (宿主机端口需要错开,后为容器端口)
 -v  v3:var/lib/mysql  (路径映射卷) 
-e MYSQL_ROOT_PASSWORD=abc123456  (数据库ROOT 用户密码)
-e CLUSTER_JOIN=node1   加入集群 和第一个容器节点数据库同步
 -e  CLUSTER_NAME=PXC  (容器名称)
 -e XTRABACKUP_PASSWORD=abc123456    (数据同步密码)
--privileged  (最高权限) 
--name=node3 (容器节点名称)
 --net=net1 (容器内部网段)
--ip172.18.0.4 (内部网段对应的ip  需要错开)
pxc   容器名

 5,第三个第四个容器

docker run -d -p 3309:3306 -v v4:/var/lib/mysql -e CLUSTER_JOIN=node1 -e MYSQL_ROOT_PASSWORD=abc123456 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=abc123456 --privileged --name=node4 --net=net1 --ip=172.20.0.5 pxc

 

docker run -d -p 3310:3306 -v v5:/var/lib/mysql -e CLUSTER_JOIN=node1 -e MYSQL_ROOT_PASSWORD=abc123456 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=abc123456 --privileged --name=node5 --net=net1 --ip=172.20.0.6 pxc

 

posted @ 2021-06-10 13:25  起个名字真难1  阅读(301)  评论(0编辑  收藏  举报