Когда я использую

docker run --it --name myContainer --hostname myShortHostName ubuntu bash

Это добавит myShortHostName в файл /etc/hostname . И 172.169.X.X myShortHostName в /etc/hosts file .

но в этом случае я использую команду hostname -f для получения FQDN моего контейнера, поскольку в FQDN нет записи /etc/hosts . И я не могу редактировать его, потому что он заменяется каждый раз при загрузке контейнера.

И если бы я использовал:

docker run --it --name myContainer --hostname myShortHostName.DOMAIN ubuntu bash

Это добавит FQDN имя в файл /etc/hostname , что не является рекомендуемым соглашением по правилам hostname , и это не соглашение, которое я использовал для использования в моей системе, которую я администрирую.

Рекомендуемый метод установки полного доменного имени - сделать имя хоста псевдонимом для полного имени, используя /etc /hosts, DNS или NIS. Например, если имя хоста было "ursula", в /etc /hosts может быть строка, которая читает

         127.0.1.1    ursula.example.com ursula

Есть ли способ (на самом деле мне нужен идеальный способ, а не редактировать файлы с помощью скрипта после загрузки контейнера), чтобы добавить только короткий myShortHostName в файл /etc/hostname файл FQDN в /etc /hosts с помощью команды docker run или какие-нибудь докеры встроенные команды или методы?

Мне нужно получить ShortHostName по hostname -s или hostname и ShortHostName.ДОМЕН (FQDN) с помощью hostname -f внутри контейнера Docker без добавления полного доменного имени в файл /etc/hostname .

1 ответ1

0

Вы можете убедиться, что полное доменное имя добавлено в /etc /hosts в вашем контейнере Docker, передав аргумент --domainname в команду docker run . Например, запустив ваш контейнер с помощью следующей команды:

docker run --it --name myContainer --hostname ursula --domainname example.com ubuntu bash

приведет к созданию следующей записи в /etc /hosts:

172.169.X.X ursula.example.com ursula

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .