在`docker node ls`输出中显示FQDN而不是主机名

时间:2019-10-31 15:38:39

标签: docker docker-swarm

当我在群集集群上运行docker node ls命令时,结果如下所示

ID                            HOSTNAME            STATUS              AVAILABILITY        MANAGER STATUS      ENGINE VERSION
0yy1e9u4gl7hipgvltffxv0pn *   host1               Ready               Active              Leader              18.09.5
413mv8n6rd9j2nt48km16mta6     host1               Ready               Active                                  18.09.5

问题在于两台服务器具有相同的主机名,但域名不同。有没有办法让群集使用FQDN而不是主机名来标识节点?我以为这是不可能的,但后来我偶然发现this tutorial处的命令输出似乎正是我要寻找的内容。你知道我怎么能做到吗?

1 个答案:

答案 0 :(得分:1)

这取决于hostname节点的设置。

默认情况下,docker node ls显示短主机名(例如hostname)而不是FQDN(例如hostname -f)。您可以将短hostname设置为FQDN的值,即:sudo hostname $(hostname -f)注释:仅在下一次重新启动之前有效-man hostname了解更多详细信息)并更新/etc/hostname,即:先hostname -f |sudo tee /etc/hostname,然后再docker node lsmanager node fqdn

对所有节点进行清洗,冲洗和重复,您应该会很好: all nodes fqdn

更新:使用swarmkit可以在加入hostname集群时设置任意的swarmswarmkit node

使用docker swarm join加入hostname时,无法设置swarm