Как указано в документации докера , если вы запускаете контейнеры в мостовой сети по умолчанию , добавление -h myname
добавит эту информацию к
- / и т.д. / хосты
- / и т.д. / resolv.conf
- и приглашение bash
контейнера только началось.
Однако это не повлияет на другие независимые контейнеры. (Вы можете использовать --link
для добавления этой информации в / etc / hosts других контейнеров. Однако --link
устарело.)
С другой стороны, когда вы создаете определяемую пользователем мостовую сеть , docker предоставляет встроенный DNS-сервер, чтобы сделать возможным поиск имен между контейнерами в этой сети, см. Встроенный DNS-сервер в пользователе сети . Разрешение имен принимает имена контейнеров, определенные с --name
. (Вы
не найдет другой контейнер, используя его значение --hostname
.
Причина, по которой он работает с docker-compose, заключается в том, что docker-compose создает собственную сеть и автоматически называет контейнеры.
Ситуация выглядит немного иначе, когда вы сами не указываете имя контейнера. ссылка на прогон говорит
Если вы не назначаете имя контейнера с параметром --name, тогда демон генерирует случайное имя строки для вас. [...] Если вы укажете имя, вы можете использовать его при обращении к контейнеру в сети Docker.
В соответствии с вашими выводами это следует читать следующим образом: Если вы не укажете пользовательский --name
, вы не сможете использовать автоматически сгенерированное имя для поиска других контейнеров в той же сети.