1. 拉取鏡像
docker pull percona/percona-xtradb-cluster:5.7.20

image.png
2.給鏡像打tag,并刪除原來的鏡像
docker tag percona/percona-xtradb-cluster:5.7.20 pxc
docker rmi percona/percona-xtradb-cluster:5.7.20
3.創(chuàng)建docker內(nèi)網(wǎng)
docker network create --subnet=172.18.0.0/24 net1
docker inspect net1

image.png
4.創(chuàng)建docker卷
由于PXC無法使用映射目錄的方法做映射,過使用docker卷,不同容器使用不同的docker卷
docker volume create --name v1
docker inspect v1
docker volume create --name v2
docker volume create --name v3
docker volume create --name v4
5.創(chuàng)建pxc容器
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 默認(rèn)在后臺(tái)運(yùn)行
-p 3306(宿主):3306(容器) 端口映射,將容器3306端口映射到宿主3306端口
-v 目錄映射,將第四步創(chuàng)建的v1映射到容器/var/lib/mysql
-e MYSQL_ROOT_PASSROWD 創(chuàng)建的用戶實(shí)例的密碼,默認(rèn)實(shí)例root
-e CLUSTER_NAME 集群名稱
-e XTRABACKUP_PASSWORD 數(shù)據(jù)庫(kù)之間同步使用的密碼
--privileged 權(quán)限.給予最高權(quán)限
--name 給容器容命名
--net 使用內(nèi)部網(wǎng)段
--ip 內(nèi)部網(wǎng)段分到的地址
pxc 指的是鏡像

image.png
6.使用連接工具測(cè)試

image.png
7.創(chuàng)建其他容器,并分別使用連接工具連接3307、3308、3309
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
docker run -d -p 3308:3306 -v v3:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=123456 -e CLUSTER_JOIN=node1 --privileged --name=node3 --net=net1 --ip 172.18.0.4 pxc
docker run -d -p 3309:3306 -v v4:/var/lib/mysql -e MYSQL_ROOT_PASSROWD=123456 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=123456 -e CLUSTER_JOIN=node1 --privileged --name=node4 --net=net1 --ip 172.18.0.5 pxc
8.創(chuàng)建表,執(zhí)行增刪操作
在任意一個(gè)數(shù)據(jù)庫(kù)進(jìn)行連接操作,看其他數(shù)據(jù)庫(kù)是否有變化。