Docker postgres соединение из * внутри * docker контейнера с postgres экземпляром локального хоста на Mac - PullRequest
0 голосов
/ 26 января 2020

Все вопросы по SO по этому поводу относятся к противоположному случаю создания postgres контейнера и его подключения с хоста Ma c. Но я пытаюсь сделать наоборот, безуспешно. У меня на локальном хосте Ma c работает localhost, и, несмотря на установку флагов портов, я не могу получить код внутри своего контейнера для связи с моим localhost postgres (общение с удаленным хостом postgres просто отлично).

docker run -it -p 5000:5000 -p 5432:5432 yard-stats

Тогда внутри docker:

telnet 0.0.0.0 5432
Trying 0.0.0.0...
telnet: Unable to connect to remote host: Connection refused

или te lnet 127.0.0.1 или localhost. В соединении отказано.

Редактировать: Я также пытался с флагом --network="host", который не изменил ничего, кроме разрыва входящих соединений с контейнером на локальном хосте: 5000 также.

1 Ответ

1 голос
/ 26 января 2020

Если вы используете docker для ма c, вы можете использовать host.docker.internal специальное DNS-имя, которое разрешает внутренний IP-адрес, используемый хостом.


Вы также можете использовать --network="host" с вашей командой docker run для запуска контейнера в сети хоста. Тогда интерфейс localhost внутри контейнера будет таким же, как интерфейс localhost хост-машины при работе в хост-сети. Таким образом, вы сможете использовать localhost:5432 для подключения к postgresql. Вы можете удалить опцию -p, так как она не действует при работе с --network="host".

docker run -it --network=host yard-stats

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