在 `docker node ls` 输出中显示 FQDN 而不是主机名
Display FQDN instead of hostname in `docker node ls` output
当我在 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
问题是两台服务器的主机名相同,但域名不同。有没有办法让 swarm 使用 FQDN 而不是主机名来识别节点?我认为这是不可能的,但后来我偶然发现 this tutorial 命令的输出似乎正是我正在寻找的。你知道我怎样才能做到吗?
这也取决于节点 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 ls
:
对所有节点进行清洗、漂洗和重复,您应该会很好:
更新:使用swarmkit
你可以在加入swarm
集群时设置任意hostname
:
使用docker swarm join
加入swarm
时无法设置hostname
。
当我在 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
问题是两台服务器的主机名相同,但域名不同。有没有办法让 swarm 使用 FQDN 而不是主机名来识别节点?我认为这是不可能的,但后来我偶然发现 this tutorial 命令的输出似乎正是我正在寻找的。你知道我怎样才能做到吗?
这也取决于节点 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 ls
:
对所有节点进行清洗、漂洗和重复,您应该会很好:
更新:使用swarmkit
你可以在加入swarm
集群时设置任意hostname
:
使用docker swarm join
加入swarm
时无法设置hostname
。