Подключение к серверу на «localhost» (::1), порт 5432 не удалось: соединение отклонено. Сервер работает на этом хосте и принимает соединения TCP/IP?

У меня запущен докер-контейнер postgresql со следующей командой docker run -p 5432:5432 -e POSTGRES_HOST_AUTH_METHOD=trust -v /var/lib/postgresql/data:/var/lib/postgresql/data postgis/postgis

Файл pg_hba.conf включает следующие строки:

# warning trust is enabled for all connections
host all all all trust

Запрос на соединение с хост-машины: psql -h localhost -U fake

Ответ в логах БД: FATAL: role "fake" does not exist

Тестовый файл Docker:

FROM postgres:latest
RUN apt-get update && apt-get install -y postgresql-client
CMD ["psql", "-U", "fake", "-h", "localhost", "-p", "5432"]

Тестовый докер-контейнер завершился неудачей со следующей ошибкой:

psql: ошибка: подключение к серверу на «localhost» (::1), порт 5432 не удалось: соединение отклонено Сервер работает на этом хосте и принимает соединения TCP/IP? подключение к серверу по адресу «localhost» (127.0.0.1), порт 5432 не удалось: соединение отклонено Сервер работает на этом хосте и принимает соединения TCP/IP?

Я ничего не вижу в журналах БД.

Почему я не могу сделать запрос из тестового докер-контейнера?

🤔 А знаете ли вы, что...
PostgreSQL также известен как 'Postgres'.


50
1

Ответ:

Решено

Чтобы соединить два разных докер-контейнера, мне нужно указать следующий параметр --network = "host".

Правильная команда: docker run --network = "host" test