请教docker swarm中指定主机的问题
请教大家个问题,我要在docker swarm集群中指定容器在一个主机上运行,我在manager上用这个命令给集群中的主机worker-1添加标签,但是感觉都没有生效docker node update --label-add data=test worker-1
然后再使用下面这个yml
version: '3'
services:
web:
image: wordpress:4
environment:
- WORDPRESS_DB_PASSWORD=password
- WORDPRESS_AUTH_KEY=changeme
- WORDPRESS_SECURE_AUTH_KEY=changeme
- WORDPRESS_LOGGED_IN_KEY=changeme
- WORDPRESS_NONCE_KEY=changeme
- WORDPRESS_AUTH_SALT=changeme
- WORDPRESS_SECURE_AUTH_SALT=changeme
- WORDPRESS_LOGGED_IN_SALT=changeme
- WORDPRESS_NONCE_SALT=changeme
- WORDPRESS_NONCE_AA=changeme
ports:
- 80:80
depends_on:
- mysql
deploy:
replicas: 3
placement:
constraints:
- date == test
restart_policy:
condition: on-failure
mysql:
image: mysql:5.7
environment:
- MYSQL_ROOT_PASSWORD=password
deploy:
placement:
constraints:
- date == test
restart_policy:
condition: on-failure
然后容器都没有在主机上起起来。不知道是不是哪里存在问题,请大家指点下,谢谢。
跟这个问题一样,似乎新版已经解决这个问题
docker-swarm如何实现label指定服务器?
http://www.aboutyun.com/forum.php?mod=viewthread&tid=21715
2017 发表于 2017-8-8 19:04
跟这个问题一样,似乎新版已经解决这个问题
docker-swarm如何实现label指定服务器?
http://www.aboutyun ...
谢谢,但是我的版本已经是17.05,算很新了。也有问那帖子的楼主。 不好意思,最近一直在解决docker swarm下mysql cluster问题没顾上回答你,刚找到突破口,松了口气。 这样的,你的yml应该这样写:
placement:
constraints:
- node.labels.date == test
试试吧,亲! lanyangkj 发表于 2017-8-10 09:00
不好意思,最近一直在解决docker swarm下mysql cluster问题没顾上回答你,刚找到突破口,松了口气。 这样的 ...
如果解决了,就给出评论。方便下个人解决类似问题。
lanyangkj 发表于 2017-8-10 09:00
不好意思,最近一直在解决docker swarm下mysql cluster问题没顾上回答你,刚找到突破口,松了口气。 这样的 ...
好的,我试试看先,非常感谢。
gause 发表于 2017-8-10 13:36
好的,我试试看先,非常感谢。
可行吗?
lanyangkj 发表于 2017-8-11 08:56
可行吗?
还是不行,按照你那样改了yml文件,运行后没有在主机上运行起容器,删点yml中标签的定义后运行就正常起了容器。
gause 发表于 2017-8-11 15:02
还是不行,按照你那样改了yml文件,运行后没有在主机上运行起容器,删点yml中标签的定义后运行就正常起了 ...
你在试试哦,肯定是没问题的。可能是你哪配置不当引起的。
本帖最后由 gause 于 2017-8-16 13:57 编辑
lanyangkj 发表于 2017-8-15 13:56
你在试试哦,肯定是没问题的。可能是你哪配置不当引起的。
试过几次,还是没成功,想不到还会有哪里的问题。
总的应该就两步很简单才对.
1、在manager上执行以下命令给worker-1节点添加标签
docker node update --label-add datatest=test worker-1
2、用下面这个创建但是容器没生成
docker service create \
--name nginx \
--replicas 3 \
--constraint 'node.labels.datetest == test' \
nginx
如果考虑试试换成用节点的方式约束,发现就正常,所以我想可能是第一条命令给节点添加标签就没成功或者不正常,导致创建服务的时候找不到该标签的节点所以没有生成容器运行。
docker service create \
--name nginx \
--replicas 3 \
--constraint 'node.hostname == worker-1' \
nginx
页:
[1]
2