我是一个Docker swarm模式noob,通过https://docs.docker.com/engine/swarm/swarm-tutorial的教程,并注意到我在关于排空节点(https://docs.docker.com/engine/swarm/swarm-tutorial/drain-node/)的章节中,我的两个工作节点被赋予相同的名称, moby
:
matthew@bunty:~$ docker node ls
ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS
3vkklry19mesmsjrgltj53kap moby Ready Active
biur2a68tze2oykta9klklkeq moby Ready Active
daf8npyma8r0dnmcxu6j491jq * bunty Ready Active Leader
这使得发出排水命令失败:
matthew@bunty:~$ docker node update --availability drain moby
Error response from daemon: node moby is ambiguous (2 matches found)
如果我使用该ID,则命令有效。
我看到Docker swarm: How to manually set node names?,但我的环境不同。我的经理节点是一个主机名为bunty
的Ubuntu框,我的工作人员是一个主机名为VADER
&的Windows框。主机名为newt
的MacBook Pro。所有这些都运行最新版本的Docker 1.12.x。
我希望节点名称为bunty
,VADER
和&分别为newt
,但我得到bunty
作为经理&两名工人moby
。
是什么给出的? docker swarm join
命令中似乎没有一个选项允许我手动命名节点,每个工作人员都有一个唯一的主机名。