Docker Swarm 入门:Docker Stack
2018-01-16 本文已影响542人
Anoyi
文/Anoyi
► 前言介绍
stack 是构成特定环境中的 service 集合, 它是自动部署多个相互关联的服务的简便方法,而无需单独定义每个服务。
stack file 是一种 yaml 格式的文件,类似于 docker-compose.yml 文件,它定义了一个或多个服务,并定义了服务的环境变量、部署标签、容器数量以及相关的环境特定配置等。
► Stack File 的编写
服务的各种配置已在之前的文章中介绍,只是在书写格式上有所变化,可以对应官方文档列举的 Demo 做参考:
示例:使用 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