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 ★★★★★
()
Ответ на: комментарий от ox55ff
  1. Зайди в контейнер с бд и посмотри ip. Использовать нужно его.
  2. Перезапустил контейнер
  3. п. 1

Вы это серьёзно?

vvn_black ★★★★★
()

Ты их руками шоле запускаешь? Возьми 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
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.