У меня есть приложение django, работающее с docker-compose, и я хочу, чтобы оно обращалось к postgres, установленному на локальном хосте.
вот шаги, которые я выполнил:
1- добавлено host all all 172.17.0.1/16 md5 в pg_hba.conf
2- изменил listen_addresses на * в postgresql.conf
3- изменен db_host на host.docker.internal
4- в docker-compose.yml добавили в сервис extra_hosts, вот так выглядит
services:
web:
extra_hosts:
- "host.docker.internal:host-gateway"
5- перезапустил postgresql sudo systemctl restart postgresql
все еще получаю эту ошибку
could not connect to server: Connection timed out
Is the server running on host "host.docker.internal" (172.17.0.1) and accepting
TCP/IP connections on port 5432?
Что я делаю не так?
если бы я это сделал, он не смог бы разрешить host.docker.internal





Решил мой вопрос
прежде всего, вам нужно знать, какую подсеть использует ваша сеть
список всех сетей
docker network ls
затем осмотрите свой
docker network inspect network_name
получить подсеть, что-то вроде 172.18.0.0/16 добавить подсеть в pg_hba.conf заставить ufw принять соединение
ufw allow in from subnet
Обычно вам не нужно добавлять
extra_hostsв docker compose. Просто установите имя хоста БД наhost.docker.internalв своем приложении. Вы можете подключиться к БД при пропуске172.17.0.1/16?