Docker Swarm集群(使用yml文件搭建集群、设置数据卷、设置资源使用情况等)

文章目录

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

Docker Swarm集群(使用yml文件搭建集群、设置数据卷、设置资源使用情况等)
Docker Swarm集群(使用yml文件搭建集群、设置数据卷、设置资源使用情况等)

  • 可以看到开启了三个web服务,在server1、server3、server4上各运行了一个容器,也可以看到数据卷
[root@server1 test]# docker service ps example_web 
ID                  NAME                IMAGE               NODE                DESIRED STATE       CURRENT STATE            ERROR               PORTS
6pgbi5opw0dt        example_web.1       nginx:latest        server3             Running             Running 27 seconds ago                       
jeenrwvkhumg        example_web.2       nginx:latest        server4             Running             Running 27 seconds ago                       
m5lyqfk0cdxd        example_web.3       nginx:latest        server2             Running             Running 17 seconds ago                       
[root@server1 test]# docker inspect 6pgbi5opw0dt

Docker Swarm集群(使用yml文件搭建集群、设置数据卷、设置资源使用情况等)
Docker Swarm集群(使用yml文件搭建集群、设置数据卷、设置资源使用情况等)

  • 在浏览器里面查看,成功
    所以文件方式比之前的命令方便多了,而且如果需要改变的化只需要修改文件,重新运行即可,不再需要从头开始部署。
    Docker Swarm集群(使用yml文件搭建集群、设置数据卷、设置资源使用情况等)

修改nginx服务的默认发布页面

  • 查看默认的发布页面。
[root@server2 test]# cd /var/lib/docker/volumes/example_webdata/_data/
[root@server2 _data]# ls
50x.html  index.html
[root@server2 _data]# cat index.html

Docker Swarm集群(使用yml文件搭建集群、设置数据卷、设置资源使用情况等)

  • 修改server2上面容器里运行的nginx服务的web页面。
[root@server2 _data]# vim index.html 
[root@server2 _data]# cat index.html 
hello even!
  • 此时server3和server4的页面不会随着server2的改变而改变。

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

  • 修改yml文件
[root@server1 test]# vim docker-compose.yml

Docker Swarm集群(使用yml文件搭建集群、设置数据卷、设置资源使用情况等)

  • 更新一下,可以看到6个web都开启。
[root@server1 test]# docker stack deploy -c docker-compose.yml example
[root@server1 test]# docker service ps example_web

Docker Swarm集群(使用yml文件搭建集群、设置数据卷、设置资源使用情况等)

  • 在4个节点上分别查看。
[root@server1 test]# docker stack services example

server1上有一个监控的容器,一个web容器。
Docker Swarm集群(使用yml文件搭建集群、设置数据卷、设置资源使用情况等)server2上一个web容器。
Docker Swarm集群(使用yml文件搭建集群、设置数据卷、设置资源使用情况等)
server3和server4上分别有两个web容器。
Docker Swarm集群(使用yml文件搭建集群、设置数据卷、设置资源使用情况等)
Docker Swarm集群(使用yml文件搭建集群、设置数据卷、设置资源使用情况等)

  • 在浏览器中查看。
    Docker Swarm集群(使用yml文件搭建集群、设置数据卷、设置资源使用情况等)

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

  • 编辑文件
[root@server1 test]# vim docker-compose.yml 

Docker Swarm集群(使用yml文件搭建集群、设置数据卷、设置资源使用情况等)

  • 更新一下。
[root@server1 test]# docker stack deploy -c docker-compose.yml example
  • 查看资源的限制是否生效。
    Docker Swarm集群(使用yml文件搭建集群、设置数据卷、设置资源使用情况等)
  • 可以看出已经生效。
上一篇:Powered by .NET Core 进展:用 docker-compose 验证高并发问题嫌疑犯 docker swarm


下一篇:docker swarm集群搭建