1.配3台主机 host
hostnamectl set-hostname swarm1
vi /etc/hosts
192.168.0.105 swarm1
192.168.0.106 swarm2
192.168.0.107 swarm3
2.开放 docker 远程端口
vi /lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
3.设置当前机器为 manager 主控节点
# 当前机器 192.168.0.105
docker swarm init --advertise-addr 192.168.0.105
4.其他节点创建 worker 工作节点并加入集群
# 当前机器 192.168.0.106
docker swarm join --token xxxxxxxxxxxx 192.168.0.105:2377
5.查看集群节点
docker node ls
6.创建服务
# --replicas 3 部署3个节点
docker service create --name [服务名] --replicas 3 -p 80:80 nginx:1.7.9
docker service create --name nginx --replicas 3 -p 80:80 nginx:1.7.9
7.查看服务
docker service ls
name mode replicas image ports
nginx replicated 3/3 nginx:1.7.9 *:80->80/tcp
8.查看服务管控下的容器
docker service ps [服务名]
docker service ps nginx
9.测试
192.168.0.105
192.168.0.106
192.168.0.107
10.服务更新 -- 多个节点滚动更新,对用户透明
# 在 manager 上执行
docker service update --image nginx:1.9.7 [服务名]
docker service update --image nginx:1.9.7 nginx
扩容
docker service scale nginx=4
删除服务
docker service rm nginx
工作节点退出集群
docker swarm leave
增加备用 manager
# 在 manager 上执行
docker swarm join-token manager
# docker swarm join --token xxxxxxxxxxxx