Існує кілька давніх дискусій про те, як це зробити послідовно, добре зрозумілим та портативним способом. Немає повної резолюції, але я зв’яжу вас із обговореннями нижче.
У будь-якому випадку вам багато хто хоче спробувати скористатися параметром --add-host для докерного запуску, щоб додати ip адресу хоста у файл / etc / host контейнера. Звідти тривіально підключатися до хоста на будь-якому необхідному порту:
Додавання записів у файл хостів контейнера
Ви можете додати інших хостів у файл / etc / hosts файлу контейнера, використовуючи один або більше --add-хостів-прапорців. Цей приклад додає статичну адресу для хоста з ім'ям docker:
$ docker run --add-host=docker:10.180.0.1 --rm -it debian
$$ ping docker
PING docker (10.180.0.1): 48 data bytes
56 bytes from 10.180.0.1: icmp_seq=0 ttl=254 time=7.600 ms
56 bytes from 10.180.0.1: icmp_seq=1 ttl=254 time=30.705 ms
^C--- docker ping statistics ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max/stddev = 7.600/19.152/30.705/11.553 ms
Примітка: Іноді потрібно підключитися до хоста Docker, що означає отримати IP-адресу хоста. Для спрощення цього процесу можна використовувати наступні команди оболонки:
$ alias hostip="ip route show 0.0.0.0/0 | grep -Eo 'via \S+' | awk '{ print $2 }'"
$ docker run --add-host=docker:$(hostip) --rm -it debian
Документація:
https://docs.docker.com/engine/reference/commandline/run/
Обговорення доступу до хоста з контейнера:
https://github.com/docker/docker/isissue/1143
https://github.com/docker/docker/isissue/10023