创建swam 集群
node1上执行
docker swarm init --listen-addr 10.146.0.2 --advertise-addr 10.146.0.2
node1的内网ip
docker swarm join-token manager
docker swarm join-token worker
根据提示在其他节点添加
node2上执行manager
node3上执行worker
docker network ls
ingress 的共享网络overlay 用于集群管理,再创建一个共享网络
docker network create -d overlay --attachable mysqlNet
三台机器都执行
获取镜像,改名
docker pull percona/percona-xtradb-cluster
docker tag percona/percona-xtradb-cluster pxc
docker rmi percona/percona-xtradb-cluster
docker volume create --name mysqlBackup
docker volume create --name mysqlData
node1上执行
docker run -d -p 3306:3306 -v mysqlData:/var/lib/mysql -v mysqlBackup:/data -e MYSQL_ROOT_PASSWORD=abc123 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=abc123 --privileged --name=mysqlnode1 --net=mysqlNet pxc
node2上执行
docker run -d -p 3306:3306 -v v2:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=abc123 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=abc123 -e CLUSTER_JOIN=mysqlnode1 --privileged --name=mysqlnode2 --net=mysqlNet pxc
node3上执行
docker run -d -p 3306:3306 -v v2:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=abc123 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=abc123 -e CLUSTER_JOIN=mysqlnode1 --privileged --name=mysqlnode3 --net=mysqlNet pxc
进入容器
docker exec -it node1 bash
apt-get update
apt-get install percona-xtrabackup-24
innobackupex --user=root --password=abc123 /data/back/full
恢复数据
docker exec -it node1 bash
rm -rf /var/lib/mysql/*
innobackupex --user=root --password=abc123 --apply-back /data/backup/full/2018-04-15_05-09-07/
innobackupex --user=root --password=abc123 --copy-back /data/backup/full/2018-04-15_05-09-07/
docker node ls
docker network ls
因篇幅问题不能全部显示,请点此查看更多更全内容