абсолютно ничего не делать; даже не пытайтесь управлять /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.