我是一个 Docker swarm 模式新手,正在阅读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
这使得发出 drain 命令失败:
matthew@bunty:~$ docker node update --availability drain moby
Error response from daemon: node moby is ambiguous (2 matches found)
如果我使用 ID,则该命令有效。
我看到了Docker swarm:如何手动设置节点名称?,但我的环境不同。我的管理器节点是一个带有主机名的 Ubuntu 盒子bunty
,我的工人是一个带有主机名的 Windows 盒子VADER
和我的带有主机名的 MacBook Pro newt
。所有人都在运行最新版本的 Docker 1.12.x。
我希望节点名称分别为bunty
, VADER
, & newt
,但我却得到bunty
了经理 &moby
两个工人的名字。
是什么赋予了?命令中似乎没有docker swarm join
让我手动命名节点的选项,并且每个工作人员都有一个唯一的主机名。