Вставить родительский IP-адрес Docker в файл hosts контейнера

Я новичок в Docker и пытаюсь понять, что является лучшим способом вставить родительский IP-адрес докера в файл хостов контейнеров.

Я использую следующую команду в своем Dockerfile

RUN /sbin/ip route|awk '/default/ { print $3,"\tdockerhost" }' >> /etc/hosts

но иногда хосты ip получают изменение, поэтому его больше не актуально...

Причиной этого, если вы спросите себя, является то, что мне нужно получить доступ к другим 2 контейнерам докеров (и ссылка не предлагает эту функцию).

Спасибо,

Ответ 1

Для этого используется опция --add-host. Итак, в вашей docker run выполните следующие действия:

docker run --add-host dockerhost:`/sbin/ip route|awk '/default/ { print  $3}'` [my container]

Ответ 2

--add-host можно использовать при создании/запуске вашего контейнера, но поскольку команда /sbin/ip недоступна в операционных системах, таких как OSX, мы можем использовать более общее решение:
docker run --add-host=dockerhost:`docker network inspect \ --format='{{range .IPAM.Config}}{{.Gateway}}{{end}}' bridge` [IMAGE]