docker搭建swarm集群
环境准备
主机名 IP 角色
manger1 192.168.111.47 管理节点
worker1 192.168.111.48 工作节点
worker2 192.168.111.49 工作节点
注:三台主机都已经拉去完swarm和nginx的镜像
1、创建新集群
[root@manager1 ~]# docker swarm init --advertise-addr 192.168.111.47
Swarm initialized: current node (d4tpuiqifp22v7ayfedhpnovb) is now a manager.To add a worker to this swarm, run the following command:
docker swarm join --token SWMTKN-1-4yeoz7sm372dsj1setf7o4g7q5dktrtg4r1olodjwi50k4me7m-bvgrx52c9kcfyy0e9uput49p1 192.168.111.47:2377
To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.
2、添加工作节点到集群当中
[root@worker1 ~]# docker swarm join --token SWMTKN-1-4yeoz7sm372dsj1setf7o4g7q5dktrtg4r1olodjwi50k4me7m-bvgrx52c9kcfyy0e9uput49p1 192.168.111.47:2377
This node joined a swarm as a worker.[root@worker2 ~]# docker swarm join --token SWMTKN-1-4yeoz7sm372dsj1setf7o4g7q5dktrtg4r1olodjwi50k4me7m-bvgrx52c9kcfyy0e9uput49p1 192.168.111.47:2377
This node joined a swarm as a worker.
3、发布服务到集群
[root@manager1 ~]# docker service create -p 80:80 --replicas 1 --name nginx1 nginx:1.27.4
4ar0vw0xy0e317m6owywi437b
overall progress: 1 out of 1 tasks
1/1: running
verify: Service 4ar0vw0xy0e317m6owywi437b converged
4、查看集群
[root@manager1 ~]# docker service ls
ID NAME MODE REPLICAS IMAGE PORTS
4ar0vw0xy0e3 nginx1 replicated 1/1 nginx:1.27.4 *:80->80/tcp
5、扩展多个集群
[root@manager1 ~]# docker service scale nginx1=3
nginx1 scaled to 3
overall progress: 3 out of 3 tasks
1/3: running
2/3: running
3/3: running
verify: Service nginx1 converged
6.查看集群的状态和节点
[root@manager1 ~]# docker node ls
ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS ENGINE VERSION
d4tpuiqifp22v7ayfedhpnovb * manager1 Ready Active Leader 28.0.4
kewgwr19mqqg6iz7vv6iyyutd worker1 Ready Active 28.0.4
cw41gpypufogk61jkiqch3zpf worker2 Ready Active 28.0.4
[root@worker1 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
04ee3f6e746e nginx:1.27.4 "/docker-entrypoint.…" 2 minutes ago Up 2 minutes 80/tcp nginx1.2.cj1yy7wwvm9iz7taa1zgdw038
[root@worker2 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2659e0546eef nginx:1.27.4 "/docker-entrypoint.…" 2 minutes ago Up 2 minutes 80/tcp nginx1.3.desr92ncuerwksk9mfwx8lqyz
7、停止并删除发布服务
[root@manager1 ~]# docker service rm nginx1
nginx1[root@worker1 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[root@worker2 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES