как обновить файлы / etc / hosts в модулях при создании нового модуля - PullRequest
0 голосов
/ 24 февраля 2020

Я использую скрипт bash для обновления файла /etc/hosts модуля с именем хоста c и IP-адресом других модулей по умолчанию. когда когда-либо модуль перезапускается или вручную вынужден удалить. новый созданный модуль не будет иметь обновленного файла /etc/hosts? как справиться с этим

Ответы [ 2 ]

1 голос
/ 24 февраля 2020

абсолютно ничего не делать; даже не пытайтесь управлять /etc/hosts файлами. Docker обеспечивает внутреннее разрешение DNS между контейнерами ( Сеть в Compose имеет более четкое описание), поэтому обычно вы можете использовать другие контейнеры --name в качестве имен хостов напрямую.

Если вы используете docker run команды, вам нужно вручную docker network create создать сеть (чтобы создать «определяемый пользователем мост» для первой ссылки).

# Create a non-default network
docker network create some_network

# Run a server on that network
docker run -d --net some_network --name server nginx

# On the same network; uses the other container's name
# "server" as a host name
docker run --rm --net some_network \
  busybox \
  wget -O- http://server

Если вы работаете это в Docker Compose, он выполняет всю эту настройку для вас (опять же, см. Сеть в Compose ; сеть Compose по умолчанию называется default, но не является "мостом по умолчанию"). Если вы работаете в другой кластерной среде (Kubernetes, Nomad), у нее будет собственная аналогичная система разрешения DNS.

0 голосов
/ 24 февраля 2020

Вы можете использовать hostAliases в шаблоне pod для добавления stati c записей хоста в файле pods / etc / hosts, вы можете проверить здесь Добавление записей хоста в pods

...