Как получить доступ к порту на хост-компьютере при запуске контейнера docker в MacOS с параметром --network = host? - PullRequest
0 голосов
/ 07 января 2020

Я настроил пару контейнеров, которые взаимодействуют друг с другом. Контейнер основного приложения работает на --network = host, поскольку он запрашивает несколько контейнеров mySQL, работающих на разных портах в сети хоста.

Я пытаюсь запустить приложение на хосте, но получаю сообщение об ошибке:

curl: (7) Не удалось подключиться к порту 0.0.0.0 36081: Соединение отклонено

Я работаю на Docker, установленном на MacOS.

Я прочитал несколько вопросов, которые указывают, что docker на MacOS работает на виртуальной машине. Но какой обходной путь для доступа к приложению с хоста? Есть ли способ получить IP указанной виртуальной машины?

1 Ответ

0 голосов
/ 07 января 2020

Вы не можете использовать --network=host на Ma c для подключения через порты хоста, но привязка к порту хоста с использованием параметров -p работает.

https://docs.docker.com/docker-for-mac/networking/# / is-no-docker0-bridge-on-osx

ХОЧУ ПОДКЛЮЧИТЬ К КОНТЕЙНЕРУ ОТ MA C

Переадресация портов работает для localhost; --publi sh, -p или -P все работают. Порты, открытые с Linux, перенаправляются на хост.

Наша текущая рекомендация - опубликовать sh порт или подключиться из другого контейнера. Это то, что вам нужно делать даже на Linux, если контейнер находится в оверлейной сети, а не в мостовой сети, поскольку они не маршрутизируются.

Для вашего варианта использования

Вам необходимо создать docker сеть и подключить к ней и БД, и контейнеры приложений. Тогда контейнеры смогут общаться друг с другом по имени. Вы также можете опубликовать sh порт контейнера приложения, чтобы получить к нему доступ со своего хоста.

https://docs.docker.com/network/bridge/

Вместо создания сети, присоединения контейнеров к сети et c вручную, вы можете использовать docker -compose.

https://docs.docker.com/compose/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...