文/Anoyi
? 前言介紹
stack 是構(gòu)成特定環(huán)境中的 service 集合, 它是自動(dòng)部署多個(gè)相互關(guān)聯(lián)的服務(wù)的簡(jiǎn)便方法,而無需單獨(dú)定義每個(gè)服務(wù)。
stack file 是一種 yaml 格式的文件,類似于 docker-compose.yml 文件旧蛾,它定義了一個(gè)或多個(gè)服務(wù)赏胚,并定義了服務(wù)的環(huán)境變量、部署標(biāo)簽拴清、容器數(shù)量以及相關(guān)的環(huán)境特定配置等。
? Stack File 的編寫
服務(wù)的各種配置已在之前的文章中介紹会通,只是在書寫格式上有所變化口予,可以對(duì)應(yīng)官方文檔列舉的 Demo 做參考:
示例:使用 Stack 部署 Docker Swarm 入門:Service Network 管理 的應(yīng)用
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
參數(shù)
簡(jiǎn)寫 | 參數(shù) | 默認(rèn)值 | 描述 |
---|---|---|---|
--bundle-file | 【實(shí)驗(yàn)階段】分布式應(yīng)用程序包文件的路徑 | ||
-c | --compose-file | Stack File 路徑 | |
--prune | 刪除不再被引用的服務(wù) | ||
--resolve-image | always | 查詢 Registry 以解決??鏡像摘要和支持的平臺(tái)(“always”、”changed”涕侈、”never”) | |
--with-registry-auth | 向 Swarm 代理發(fā)送 Registry 認(rèn)證詳細(xì)信息 |
示例:將上述內(nèi)容寫到文件 stack.yml
中沪停,然后部署
docker stack deploy -c stack anoyi_mongo
? Stack 列表
用法
docker stack ls
? Stack 服務(wù)列表
docker stack services [OPTIONS] STACK
? Stack 任務(wù)列表
用法
docker stack ps [OPTIONS] STACK
? Stack 刪除
用法
docker stack rm STACK [STACK...]
示例:
docker stack rm anoyi_mongo