当前位置:运维
原文作者:柒染
在docker swarm 集群中,通常默认随机部署容器到各个节点上。但是,有时在部署中总会遇到,一些服务要指定在特殊的机器上。如果碰到这种情况,我们可以利用docker-compose.yml文件中的deploy.placement.constraints属性
deploy:
replicas: 1
placement:
constraints:
## 常用方式指定 manager或者work节点
- node.role == worker
deploy:
replicas: 1
placement:
constraints:
- node.hostname == docker1
node label 可以给一个或多个机器打上一个标签,然后再compose文件中指定节点标签,就可以部署在打上对应标签的机器上。具体步骤如下:
例如我要对一个主机名为docker1的机器打上一个标签为db的标签
docker node update --label-add role=db docker1
然后,配置compose文件
deploy:
replicas: 1
placement:
constraints:
- node.labels.role == db
删除node标签的命令
docker node update --label-rm role 标签名称
先使用docker node ls查看node 的id:
deploy:
replicas: 1
placement:
constraints:
- node.id == xy4ttvg3xqbvwu4lok2xpgmrc
deploy:
replicas: 1
placement:
constraints:
- engine.labels.operatingsystem==ubuntu 14.04
千知博客