前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Docker stack 多服务编排

Docker stack 多服务编排

作者头像
张乘辉
发布2020-05-07 10:40:26
2.5K0
发布2020-05-07 10:40:26
举报
文章被收录于专栏:后端进阶后端进阶

之前 swarm 集群中docker service create一次只能部署一个微服务,我们可以使用 docker stack + compose 一次启动多个服务。

stack 是一组相互关联的服务,它是服务的上一层,这些服务共享依赖关系,并且可以一起编排和缩放。单个 stack 能够定义和协调整个应用程序的功能,简单来说 stack 就是一组服务的集合。

  • 编写 docker-compose.yml 文件:
代码语言:javascript
复制
version: "3"

services:
  go-gin-demo:
    image: chenghuizhang/go-gin-demo:v3
    ports:
      - 8081:8081
    networks:
      - overlay
    deploy:
      mode: replicated
      replicas: 2
  hello:
    image: chenghuizhang/helloword:0.0.2
    ports:
      - 8080:8080
    networks:
      - overlay
    deploy:
      mode: replicated
      replicas: 2

  visualizer:
    image: dockersamples/visualizer:stable
    ports:
      - 8090:8080
    stop_grace_period: 1m30s
    volumes:
      - "/var/run/docker.sock:/var/run/docker.sock"
    deploy:
      placement:
        constraints: [node.role == manager]
             
networks:
  overlay:

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

  • 部署
代码语言:javascript
复制
$ docker stack deploy -c docker-compose.yml mynet

现在我们打开浏览器输入 任一节点 IP:8090 即可看到各节点运行状态。如下图所示:

visualizer

也可以在服务器里面查看服务运行情况:

代码语言:javascript
复制
$ docker stack ps mynet

docker compose

  • stack 相关命令:
代码语言:javascript
复制
deploy      Deploy a new stack or update an existing stack
ls          List stacks
ps          List the tasks in the stack
rm          Remove one or more stacks
services    List the services in the stack
  • 现在我们更新一下 docker-compose.yml 文件,增加 portainer 服务:
代码语言:javascript
复制
portainer:
    image: portainer/portainer
    ports:
      - "9000:9000"
    volumes:
      - "/var/run/docker.sock:/var/run/docker.sock"
    deploy:
      replicas: 1
      placement:
        constraints: [node.role == manager]
代码语言:javascript
复制
$ docker stack deploy -c docker-compose.yml mynet

打开页面:

docker stack

portainer 是 docker swarm 集群容器管理页面,可管理 Docker 容器、image、volume、network 等,当然我们还可以在其页面上添加多个stack:

docker stack

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-05-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 后端进阶 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档