yml文件部署swarm集群
首先,在server1上删除之前输入命令手动方式创建的服务和容器。
server1是swarm集群的管理节点,在server1上面删除,server2、server3和server4的容器自动也就释放了
[root@server1 ~]# docker service rm viz
viz
[root@server1 ~]# docker service rm web
web
[root@server1 ~]# docker service ls
[root@server1 ~]# docker ps
在server2~4上查看运行web服务的容器是否被释放。
[root@server2 ~]# docker ps
[root@server3 ~]# docker ps
[root@server4 ~]# docker ps
server1下载yml文件。
lftp 172.25.11.250:/pub/docker/docker> get docker-compose.yml
[root@server1 ~]# ls
docker-compose.yml game2048.tar nginx.tar visualizer.tar
新建一个目录,将yml文件移入。
[root@server1 ~]# mkdir test
[root@server1 ~]# mv docker-compose.yml test/
[root@server1 ~]# cd test/
[root@server1 test]# ls
docker-compose.yml
编辑yml文件,加入容器的数据卷,副本三个,1次更新两个,10s更新一次
[root@server1 test]# vim docker-compose.yml
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-failure
visualizer:
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:
利用yml文件开始创建swarm集群
[root@server1 test]# docker stack deploy --help #查看帮助
[root@server1 test]# docker stack deploy -c docker-compose.yml example
在浏览器里面查看,成功
所以文件方式比之前的命令方便多了,而且如果需要改变的化只需要修改文件,重新运行即可,不再需要从头开始部署。
修改yml文件,写入对容器使用资源的限制
编辑文件
更新一下。
[root@server1 test]# docker stack deploy -c docker-compose.yml example