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

标签 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,该命令的输出似乎正是我在寻找的内容。你知道我怎么能做到吗?

最佳答案

这也取决于节点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:
manager node fqdn

对所有结点进行清洗,冲洗和重复,您应该保持良好状态:
all nodes fqdn

更新:加入swarmkit集群时,可以使用 hostname 设置任意swarm:
swarmkit node

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

关于docker - 在 `docker node ls`输出中显示FQDN而不是主机名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58646826/

相关文章:

服务重启后 Docker 节点关闭

docker - 如何列出ubuntu:16.04 docker容器中的文件?

python - 如何在 docker 上运行我的 python 脚本?

docker - 如何将每个 docker swarm 服务的运行实例数作为普罗米修斯指标?

docker - 附加到Docker容器运行过程后如何打印命令行参数?

amazon-web-services - 如何为使用计划任务且无服务的 ECS 集群设置自动伸缩?

docker exec 无法在 docker-compose 容器中工作

php - 旧的 php 容器显示 : curl: (60) SSL certificate problem: certificate has expired

linux - 当 copts 包含空格时,如何使用 bazel 在 docker build 镜像上交叉编译 tensorflow-serving

amazon-web-services - AWS ALB 与 Docker 群