Docker Swarm - Docker Stack

文/Anoyi

► 前言介绍

stack 是构成特定环境中的 service 集合, 它是自动部署多个相互关联的服务的简便方法,而无需单独定义每个服务。

stack file 是一种 yaml 格式的文件,类似于 docker-compose.yml 文件,它定义了一个或多个服务,并定义了服务的环境变量、部署标签、容器数量以及相关的环境特定配置等。

► Stack File 的编写

服务的各种配置已在之前的文章中介绍,只是在书写格式上有所变化,可以对应官方文档列举的 Demo 做参考:

https://docs.docker.com/compose/compose-file/

示例:使用 Stack 部署 Docker Swarm 入门:Service Network 管理 的应用

version: '3.4'
services:
  mongo:
    image: mongo
    restart: always
    networks: 
      - mongo_network
    deploy:
      restart_policy:
        condition: on-failure
      replicas: 2
  mongo-express: 
    image: mongo-express
    restart: always
    networks: 
      - mongo_network
    ports:
      - target: 8081
        published: 80
        protocol: tcp
        mode: ingress
    environment:
      ME_CONFIG_MONGODB_SERVER: mongo
      ME_CONFIG_MONGODB_PORT: 27017
    deploy:
      restart_policy:
        condition: on-failure
      replicas: 1
networks:
  mongo_network:
    external: true

► 部署 Stack

用法

docker stack deploy [OPTIONS] STACK

参数

简写 参数 默认值 描述
--bundle-file 实验阶段】分布式应用程序包文件的路径
-c --compose-file Stack File 路径
--prune 删除不再被引用的服务
--resolve-image always 查询 Registry 以解决​​镜像摘要和支持的平台(“always”、”changed”、”never”)
--with-registry-auth 向 Swarm 代理发送 Registry 认证详细信息

示例:将上述内容写到文件 stack.yml 中,然后部署

docker stack deploy -c stack anoyi_mongo

► Stack 列表

用法

docker stack ls

► Stack 服务列表

docker stack services [OPTIONS] STACK

► Stack 任务列表

用法

docker stack ps [OPTIONS] STACK

► Stack 删除

用法

docker stack rm STACK [STACK...]

示例:

docker stack rm anoyi_mongo

► 补充案例

Docker Swarm 下搭建 MongoDB 分片+副本+选举集群

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 89,541评论 13 124
  • 一 、什么是 Docker Docker 最初是 dotCloud 公司创始人 Solomon Hykes 在法国...
    Blazzer阅读 2,030评论 0 12
  • 学习途径 docker官网教程(学习一样新东西最快的方法是去看官方文档,讲解的清楚,教程简单,但是包括的面十分的广...
    帅气的鱼先森阅读 3,335评论 5 20
  • 以下原文转载于(https://docs.docker.com/docker-for-mac/)(想找中文版的最新...
    Veekend阅读 5,430评论 0 18
  • 这篇文章讲了Docker-machine,Docker-compose,Docker-swarm的一些基础知识。 ...
    professorLea阅读 2,352评论 0 14