1. 介绍
Docker Client 包括Swarm Manager 和 Swarm Worker,Swarm Manager是管理Docker集群的,同时他也承担Swarm Worker的工作。
2. 创建Swarm集群,以4个docker节点为例
docker swarm init
docker swarm join-token manager
docker swarm join-token work
docker node ls
复制代码
docker network ls
复制代码
这是Swarm创建的共享网络,不是用于容器和容器之间的业务通信,它用来管理Swarm集群的
docker network create -d overlay --attachable swarm_test
复制代码
docker volume create v1
docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=a11111 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=a111111 -v v1:/var/lib/mysql -v backup:/data --privileged --name=node1 --net=swarm_test pxc
复制代码
打开第二个宿主机,执行如下
docker volume create v2
docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=a11111 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=a111111 -e CLUSTER_JOIN=node1 -v v2:/var/lib/mysql -v backup:/data --privileged --name=node1 --net=swarm_test pxc
复制代码
打开第三个宿主机,执行如下
docker volume create v3
docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=a11111 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=a111111 -e CLUSTER_JOIN=node1 -v v3:/var/lib/mysql -v backup:/data --privileged --name=node1 --net=swarm_test pxc
复制代码
打开第四个宿主机,执行如下
docker volume create v4
docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=a11111 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=a111111 -e CLUSTER_JOIN=node1 -v v4:/var/lib/mysql -v backup:/data --privileged --name=node1 --net=swarm_test pxc
复制代码
docker inspect node1
复制代码
3. 退出Swarm集群,登录对应的docker节点
docker stop node
docker rm node
docker swarm leave --force
复制代码
Manager退出集群必须要使用--force参数
4. 被动退出Swarm集群,指的是从管理节点,执行
docker node demote 节点ID
docker node rm
复制代码
删除任何的节点必须要先停止它的Docker服务,Manager节点必须先降级程Manager节点,然后再去删除
然后,登录node节点的宿主机
docker stop node
docker rm node
service docker stop
复制代码
最后,切回Manager节点,执行
docker node ls
docker node rm 节点ID
复制代码