当前位置:   article > 正文

Docker----(十二)Docker stack集群管理_docker deploy constraints label

docker deploy constraints label

实验环境

  • server1:搭建harbor仓库
  • server2(swarm manager)、server3(swarm node)、server4(swarm node)安装docker,可以使用server1的hardor仓库

1 docker-compose和docker-stack

docker-compose是一个Python项目。 最初有一个名叫fig的Python项目能够解析 fig.yml——>启动docker 容器堆栈,作用在Docker引擎的顶层。在内部,它使用Docker API根据规范启动容器,仍然必须单独安装docker-compose工具包才能将其与Docker一起使用。

Swarm模式已经在1.12中集成到Docker Engine中,可以在不安装Docker Compose的情况下启动docker 容器堆栈(docker stack 是docker swarm的一部分)。docker stack 支持与docker-compose 相似能力, 但是在Docker引擎内Go语言环境中运行的, 在使用docker stack命令之前你还必须创建一个swarm机器。

docker stack 不支持版本2规范编写的compose.yml文件,必须使用最新的V3 版本。docker-compose工具依然可以处理版本2,3。

docker stack把docker compose的所有工作都做完了,因此docker stack将占主导地位。

相同点:

  • 使用方式雷同:都使用yml 容器编排定义文件
  • 作用大体相同: 两机制都能操纵 compose.yml文件中定义的 services、volumes 、networks资源

不同点:

  • docker stack 不支持 compose file中的“build”指令,相比之下docker-compose可现场创建镜像,更适合迭代开发、测试和 快速验证原型
  • docker swarm内置,不需要安装docker-compose 工具
  • docker-compose 不支持 compos版本3中 deploy配置节(定义适用于生产部署的配置),
    这个deploy配置节专属于docker stack

2 docker stack部署

基于 Docker Swarm 之上来完成应用的部署,面向大规模场景下的多服务部署和管理。

(1)编辑compose文件:vim docker-compose.yml

  • 该 compose 文件指定部署 2 个服务,分别指定了服务的端口、服务实例个数、网络、镜像名称等等, 其中的 visualizer
    服务提供一个可视化页面,提供从浏览器中很直观的查看集群中各个服务的运行节点
version: "3.9"
services:

  web:
    image: myapp:v1
    networks:
      - mynet
    deploy:
      replicas: 2
      update_config:
        parallelism: 2
        delay: 10s
      restart_policy:
        condition: on-failure

  visualizer:
    image: 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:
  mynet:
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29

(2)部署stack:docker stack deploy -c docker-compose.yml my_cluster
在这里插入图片描述

  • 列出docker的服务:docker service ls

在这里插入图片描述

  • 查看集群的状态: docker stack ps my_cluster

在这里插入图片描述

  • 在浏览器端测试:172.25.12.2

在这里插入图片描述

  • 编辑compose文件:vim docker-compose.yml
 web:
    image: myapp:v1
    networks:
      - mynet
    deploy:
      replicas: 6 ##修改任务的个数
      update_config:
        parallelism: 2
        delay: 10s
      restart_policy:
        condition: on-failure
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 更新现有的stack:docker stack deploy -c docker-compose.yml my_cluster

在这里插入图片描述
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/73953
推荐阅读
相关标签
  

闽ICP备14008679号