PostgreSQL недоступен из контейнера Docker - PullRequest
0 голосов
/ 05 июля 2019

У меня есть несколько проблем с подключением к PostgreSQL из моего приложения Python.PostgreSQL находится вне контейнера, потому что это существующая база данных.

Снаружи контейнера база данных выглядит доступной:

$ nmap -p 5432 localhost
Starting Nmap 7.70 ( https://nmap.org ) at 2019-07-05 18:33 CEST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00014s latency).
Other addresses for localhost (not scanned): ::1

PORT     STATE SERVICE
5432/tcp open  postgresql

Nmap done: 1 IP address (1 host up) scanned in 0.12 seconds

Но изнутри:

bash-4.4# nmap -p 5432 localhost
Starting Nmap 7.70 ( https://nmap.org ) at 2019-07-05 16:34 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000040s latency).
Other addresses for localhost (not scanned): ::1

PORT     STATE  SERVICE
5432/tcp closed postgresql

Nmap done: 1 IP address (1 host up) scanned in 0.41 seconds

Iне удалось найти похожие проблемы.

1 Ответ

1 голос
/ 05 июля 2019

Просто добавьте --network = "host" при запуске вашего контейнера python:

Очень быстро раскрутить сервер postgres:

docker run --rm -d --name postgres-server -p 5432:5432 postgres

Если я попытаюсь подключиться к нему через докер-клиент, произойдет сбой без --network = "host":

docker run --rm -it --name postgres-client postgres psql -Upostgres -h localhost
psql: could not connect to server: connection refused

С --network:

docker run --rm -it --name postgres-client --network="host" postgres psql -Upostgres -h localhost
psql (10.4 (Debian 10.4-2.pgdg90+1)
postgres=#

Приветствия

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