Показывать полное доменное имя вместо имени хоста в выводе `docker node ls` - PullRequest
1 голос
/ 31 октября 2019

Когда я запускаю команду 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 вместо имени хоста для идентификации узла? Я предположил, что это невозможно, но потом наткнулся на этот урок , где вывод команды выглядит именно тем, что я ищу. Вы знаете, как мне этого добиться?

1 Ответ

1 голос
/ 31 октября 2019

Это зависит от того, какие узлы hostname также установлены.

По умолчанию docker node ls отображает краткое имя хоста (например, hostname), а не полное доменное имя (например, hostname -f). Вы можете установить для короткого hostname значение полного доменного имени, например: sudo hostname $(hostname -f) ( note : это действует только до следующей перезагрузки - 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.

...