一、拉取鏡像
docker pull percona/percona-xtradb-cluster:5.7.21
docker tag percona/percona-xtradb-cluster:5.7.21 pxc
docker rmi percona/percona-xtradb-cluster:5.7.21
二、創(chuàng)建docker集群并創(chuàng)建docker網(wǎng)絡(luò)
主節(jié)點(diǎn)執(zhí)行:docker swarm init
打印出如下內(nèi)容后:復(fù)制紅框內(nèi)的內(nèi)容到其他子節(jié)點(diǎn)執(zhí)行

創(chuàng)建docker網(wǎng)絡(luò)(加粗為網(wǎng)絡(luò)名稱)
docker network create -d overlay --attachable swarm_mysql
三、創(chuàng)建主節(jié)點(diǎn)
docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=iking.com -e CLUSTER_NAME=PXC1 -e XTRABACKUP_PASSWORD=iking.com -v pxc1:/var/lib/mysql --privileged --restart=always --net=swarm_mysql --name=pxc1 pxc
說(shuō)明:
3306端口:數(shù)據(jù)庫(kù)訪問(wèn)端口
4444端口:sst全量傳輸
4567端口:pxc cluster 相互通訊端口
4568端口:ist增量傳輸
2377端口:用戶集群通信
7946端口:容器網(wǎng)絡(luò)發(fā)現(xiàn)
4789端口:容器覆蓋網(wǎng)絡(luò)
pxc1為掛載數(shù)據(jù)卷,不存在時(shí)自動(dòng)創(chuàng)建:采用docker搭建PXC集群時(shí),不支持文件目錄的掛載方式,而只支持?jǐn)?shù)據(jù)卷的掛載方式
MYSQL_ROOT_PASSWORD:mysql初始密碼
XTRABACKUP_PASSWORD:備份密碼
CLUSTER_NAME:集群名稱
四、docker數(shù)據(jù)卷操作
docker volume ls ?【查看已有的數(shù)據(jù)卷】
docker volume create pnv1 【創(chuàng)建一個(gè)叫做pnv1的數(shù)據(jù)卷】
docker volume rm 數(shù)據(jù)卷名字 【刪除某個(gè)數(shù)據(jù)卷】、
docker volume inspect pnv1 ?【查看某個(gè)數(shù)據(jù)卷詳情】
五、創(chuàng)建從節(jié)點(diǎn)
docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=iking.com -e CLUSTER_NAME=PXC1 -e XTRABACKUP_PASSWORD=iking.com -e CLUSTER_JOIN=pxc1 -v pxc2:/var/lib/mysql --privileged --restart=always --net=swarm_mysql --name=pxc2 pxc
建議創(chuàng)建至少2個(gè)從節(jié)點(diǎn),如果只是1主1從,當(dāng)主掛掉后,從無(wú)法使用