LINUX.ORG.RU
решено ФорумAdmin

Докеры и порты

 ,


0

1

Привет.

Есть два докера, в одном крутится postgres, в другом контейнере я пытаюсь подключиться к базе данных, ошибка «Connection to 0.0.0.0:5432 refused». Не из контейнера подключение к базе работает. В чем может быть проблема?

netstat

Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:5432 0.0.0.0:* LISTEN

Перемещено leave из general

В чем может быть проблема?

В общем случае надо либо настраивать сеть между контейнерами, либо (неправильно) использовать контейнерами сеть хоста.

vvn_black ★★★★★ ()

Надо что-то типа:

network_mode: "service:postgres"

для второго контейнера. И подключатся прямо по имени первого контейнера.

ololoid ★★★★ ()

Потому что 0.0.0.0 в контейнере и 0.0.0.0 на хосте это разные адреса.

firkax ★★ ()
Ответ на: комментарий от barberry

network_mode: host помогло

ага заткнул канализацию тряпочкой.

только это не решение, а костыль. докеры должны быть в одной (докерной) сети и делать коннекты друг к другу (желательное по имени), а не через хост.

constin ★★★★ ()

Зайди в контейнер с бд и посмотри ip. Использовать нужно его.

У постгрес в конфиге задаётся ip с которых разрешено подключение. Проверь, что у тебя там всё в порядке.

Режим хост сети это костыль. Нет изоляции. Могут быть конфликты по номерам портов.

ox55ff ★★★★★ ()

Ты их руками шоле запускаешь? Возьми docker-compose хотя бы, там для них запилишь общую сеть.

Nervous ★★★★★ ()

docker network create pgnetwork

docker run –rm -d –network pgnetwork postresql

docker run –rm – network pgnetwork <your_conteiner_uses_posgresql>

anonymous ()

Используй docker-compose, в нем присвой контейнеру с базой hostname, настрой сеть https://docs.docker.com/compose/networking/. Можно в конфиге посгре указать слушать все интерфейсы и обращаться к нему по имени.

achilles_85 ()
Ответ на: комментарий от ox55ff

Режим хост сети это костыль.

Бывает, что без этого никуда. Например с каким-нибудь coturn сервисом попробуй без этого костыля.

achilles_85 ()
Ограничение на отправку комментариев: только для зарегистрированных пользователей