主机 IP | 主机名 | 角色 |
---|---|---|
192.168.1.10 | master | manager |
192.168.1.20 | node01 | node |
192.168.1.30 | node01 | node |
安装 Docker
代码语言:javascript复制yum install docker-ce -y
安装 swarm
代码语言:javascript复制docker pull swarm
创建swarm
代码语言:javascript复制# 执行完成后,该节点会自动加入到 swarm 集群,并创建一个 token
docker swarm init --advertise-addr 192.168.1.10
docker node ls
# 查看 token
docker swarm join-token manager
添加工作节点到集群中
代码语言:javascript复制docker swarm join --token ******** 192.168.1.10
查看
代码语言:javascript复制# 查看节点状态,active是在线,drain是下线
docker node ls
# 把 node01 节点下线,该节点上的容器会被迁移到其他节点上
docker node update --availability drain node01
# 删除 node01 节点
docker node rm --force node01
# 重新上线 node01 节点
docker node update --availability active node01
在 swarm 集群中部署服务
代码语言:javascript复制# 先创建一个网络
docker network create -d overlay nginx
# 创建 nginx 容器
docker service create --replicas 1 --network nginx --name mynginx -p 80:80 nginx
docker service ls
# 查看服务运行在哪个节点上
docker service ps mynginx
# 把 nginx 容器动态扩展到5个
docker service scale mynginx=5
docker service update --replicas 5 mynginx
# 动态缩容
docker service scale mynginx=2
# 删除服务
docker service rm mynginx
把 manager 节点降为工作节点
代码语言:javascript复制# 把 manager 节点降级
docker node demote manager
# 提升一个 work 节点为 manager
docker node update node02