@IndiNoob

Почему не могу подключиться к серверу postgres в docker контейнере?

1. Есть Хост Windows 10 на нём --> Virtual Box на нём ---> (Vagrant + CentOS 8).
2. Сеть между Windows 10 и CentOS работает через nat
3. На CentOS поднят docker с контейнерами
Контейнеры
5f350d9017271139130803.png
Контейнеры поднимал через docker-compose
Вот конфиг
version: "3.8"
services:

  db:
    image: postgres:12.3-alpine
    container_name: postgres
    ports:
      - "5432:5432"
    volumes:
      - "./pg_data:/var/lib/postgresql/data/pg_data"
    environment:
      POSTGRES_PASSWORD: 123
      POSTGRES_DB: movieblog
      PGDATA: /var/lib/postgresql/data/pg_data
    restart: always

  adminer:
    image: adminer
    ports:
      - "8080:8080"
    restart: always

4. На virtual box прокинул порты от хоста к гостю
Порты
5f350e8f12e64322766166.png

5. Дал порту 5432 Accept в INPUT iptables
Iptables
5f35105e6e183151454533.png
добавил порт в firewall-cmd
Фаервол
5f351087711a5100126130.png


В итоге попадаю на админку (adminer) через порт 8080, ввожу данные но войти не могу
Основная проблема
5f352873228cb766309056.png


Как быть??
  • Вопрос задан
  • 92 просмотра
Решения вопроса 1
@IndiNoob Автор вопроса
CentOS 8 перешел на новую подсистему брандмауэра - nftables, а Docker поддерживает только iptables, то сеть внутри контейнеров работать не будет. Чтобы это исправить надо включить трафик masquerade с помощью firewalld:

firewall-cmd --zone=public --add-masquerade --permanent

Потом перезагрузить фаервол, чтобы активные правила обновились:
firewall-cmd --reload
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@q2digger
никого не трогаю, починяю примус
почему в adminir-e указываете базу данных postgres , хотя в docker-compose база называется movieblog ?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы