1.yml文件部署swarm集群

(1)在server1上删除之前创建的服务和容器

server1是swarm集群的管理节点,在server1上面删除server2、server3和server4的容器自动也就释放了

docker swarm 指定 docker swarm yaml_docker


(2)在server1,server2、server3、server4上面查看运行web服务的容器是否被释放

docker swarm 指定 docker swarm yaml_web服务_02


docker swarm 指定 docker swarm yaml_nginx_03


docker swarm 指定 docker swarm yaml_nginx_04


docker swarm 指定 docker swarm yaml_docker_05


(3)在真机上面给server1节点发送yml文件

docker swarm 指定 docker swarm yaml_web服务_06


(4)server1新建一个目录,将yml文件移入

docker swarm 指定 docker swarm yaml_web服务_07


(5)编辑yml文件,加入容器的数据卷

副本三个,1次更新两个,10s更新一次

version: “3.7”
 services:
web:
 image: nginx:latest
 ports:
 - “80:80”
 networks:
 - webnet
 volumes:
 - “webdata:/usr/share/nginx/html”
 deploy:
 replicas: 3
 update_config:
 parallelism: 2
 delay: 10s
 restart_policy:
 condition: on-failurevisualizer:
 image: dockersamples/visualizer:latest
 ports:
 - “8080:8080”
 stop_grace_period: 1m30s
 volumes:
 - “/var/run/docker.sock:/var/run/docker.sock”
 deploy:
 placement:
 constraints: [node.role == manager]
 networks:
 webnet:volumes:
 webdata:

docker swarm 指定 docker swarm yaml_web服务_08


(6)利用yml文件开始创建swarm集群

docker swarm 指定 docker swarm yaml_docker_09


docker swarm 指定 docker swarm yaml_nginx_10


(7)可以看到开启了三个web服务,在server1、server3、server4上各运行了一个容器
也可以看到数据卷

docker swarm 指定 docker swarm yaml_docker swarm 指定_11


docker swarm 指定 docker swarm yaml_docker swarm 指定_12


docker swarm 指定 docker swarm yaml_web服务_13


(8)在浏览器里面查看,成功

所以文件方式比之前的命令方便多了

而且如果需要改变的化只需要修改文件,重新运行即可

不再需要从头开始部署

docker swarm 指定 docker swarm yaml_web服务_14

2.修改一下nginx服务的默认发布页面 ,server1,3,4分别改

docker swarm 指定 docker swarm yaml_web服务_15


docker swarm 指定 docker swarm yaml_web服务_16


3,4同理

在真机测试,可以看到三次一个循环,也实现了负载均衡

docker swarm 指定 docker swarm yaml_web服务_17


3.修改yml文件,写入副本个数为6

docker swarm 指定 docker swarm yaml_docker_18


更新

docker swarm 指定 docker swarm yaml_docker_19


docker swarm 指定 docker swarm yaml_web服务_20


docker swarm 指定 docker swarm yaml_docker_21


4.修改yml文件,写入对容器使用资源的限制

编辑文件

docker swarm 指定 docker swarm yaml_nginx_22


更新

docker swarm 指定 docker swarm yaml_nginx_23


查看服务运行的情况

docker swarm 指定 docker swarm yaml_web服务_24


查看资源的限制是否生效

cpu

docker swarm 指定 docker swarm yaml_docker swarm 指定_25


内存

docker swarm 指定 docker swarm yaml_web服务_26


docker swarm 指定 docker swarm yaml_docker swarm 指定_27


可以看出已经生效

总结:以上就是利用yml文件部署swarm集群的基本方法和常见的设置
可以看出文件比命令方式方便多了