此帖已结贴,在新版的docker已经解决了。需要帮忙可以私信与我。谢谢大家 |
lanyangkj 发表于 2017-5-11 14:54 上面其实都已经展现了。目前还未找到楼主所说的内容 |
langke93 发表于 2017-5-11 14:02 那大神,如何在swarm下让容器在指定服务器上运行呢。 |
lanyangkj 发表于 2017-5-11 09:57 楼主在官网其实已经查到了。node 的label起不到过滤的作用。 |
einhep 发表于 2017-5-11 09:47 那node中的--label-add 该如何写? [size=13.3333px]com.example.foo 这个是什么东西?? [root@docker-02 ~]# docker node ls -f "label=foo" ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS [root@docker-02 ~]# 我总感觉,这个对swarm来说 label标签不可用,你看上边的过滤器都查不到东西。 而name标签却是可以的。看下图: [root@docker-02 ~]# docker node ls -f "name=docker-03" ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS mfbk8anq4ozuf0mz64xrdjv9z docker-03 Ready Active [root@docker-02 ~]# |
lanyangkj 发表于 2017-5-11 09:26 --label com.example.foo="bar" --label bar=baz \ 这应该是两个 |
十分感谢您的回复,我再问下,因为node节点标签与容器创建分发应该是成对出现的。 docker service create \ --name redis_2 \ --label com.example.foo="bar" --label bar=baz \ redis:3.0.6 你这个只写了容器创建, 那节点上该如何标注呢。 反正我用 --label-add 好像匹配不到,达不到预期的效果。 比如说, --label com.example.foo="bar" --label bar=baz \ 这个两个key=value还是一个呀。 与之对应--label-add 该如何定义才生效呢?? 在线等,谢谢!! |
lanyangkj 发表于 2017-5-10 17:34 首先这种方式是可以的。至于楼主为什么不生效,可以看看命令格式等。下面参考 例如 [mw_shl_code=bash,true]docker service create \ --name redis_2 \ --label com.example.foo="bar" --label bar=baz \ redis:3.0.6[/mw_shl_code] 更多信息 https://docs.docker.com/engine/userguide/labels-custom-metadata/ 除了这种方式还有其它方式 比如 [mw_shl_code=bash,true]docker run -d -P \ -e constraint:storage=ssd \ -e constraint:zone=external \ -t nginx[/mw_shl_code] 更多参考 http://www.aboutyun.com/home.php ... do=blog&id=3343 |
为什么会有这种场景吧?比如说,我mysql只能指定到其中某台服务器执行,这时候就不能让自动均衡,否则有些宿主机的磁盘卷或者文件就找不到了。 |