只是写了几个常用的例子
官方编写参考
https://docs.docker.com/compose/compose-file/#labels
mode模式
mode模式用于指定容器数量,默认replicated可以指定数量,global则表示每个node节点上运行一个
version: "3.8"
services:
worker:
image: dockersamples/examplevotingapp_worker
deploy:
mode: global
replicated 副本数
version: "3.8"
services:
worker:
image: dockersamples/examplevotingapp_worker
deploy:
mode: replicated
replicas: 2
标签label
让容器运行在指定node节点上
1 查看node
docker node ls
ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS ENGINE VERSION
g9ix6sy3hdec1aobrfxxgyslh * dev-spring Ready Active Leader 19.03.8
f98277jin0sjybl0f7su0dwok qc-spring Ready Active Reachable 19.03.8
2 添加标签
标签名称 saas-qc
docker node update --label-add role=saas-qc qc-spring
3 查看node标签
# docker node inspect qc-spring |grep Labels -A 2
"Labels": {
"role": "saas-qc"
},
4 删除标签
# docker node update --label-rm role=saas-qc qc-spring
5.服务部署约束
5.1 service方式
docker service create \
--name nginx_2 \
--constraint 'node.labels.role == saas-qc' \
nginx
5.2 stack方式
version: '3'
services:
saas-admin-demo:
image: docker.wecode123.com:6000/saas_qc/saas_admin:V13
ports:
- 30330:20240
networks:
- saas-demo
deploy:
mode: global
placement:
constraints:
- node.labels.role==saas-qc # 指定运行在带有标签的节点上