Подключение к Postgresql в docker контейнере с GUI - PullRequest
1 голос
/ 26 апреля 2020

Я только начал изучать docker, и я решил создать контейнер postgresql, и я хочу использовать его в качестве базы данных.

Но дело в том, что каждый раз, когда я пытался подключиться к своему postgresql контейнер с моим Gui (PostBird), я получаю сообщение об ошибке «Соединение неожиданно прервано».

Мой файл конфигурации:

postgres:
  image: postgres:alpine
  restart: always
  ports:
    - '3000:3000'
  environment:
    POSTGRES_USER: root
    POSTGRES_PASSWORD: root
    POSTGRES_DB: adonisvue
  volumes:
    - ./init:/docker-entrypoint-initdb.d/

Команда, которую я использовал:

sudo docker-compose up

Когда мой контейнер postgres работает, он говорит: «Система базы данных готова принимать подключения», но я не могу подключиться к своему gui, даже используя URL-адрес подключения.

Мне пришлось изменить свой порт на 3000, потому что docker говорит о том, что порт 5432 уже используется, но у меня не работает ни один контейнер. Это из-за psql?

Извините, я действительно новичок в этом, и у меня просто есть куча вопросов xD

1 Ответ

1 голос
/ 26 апреля 2020

Мне пришлось изменить свой порт на 3000, потому что docker говорит, что порт 5432 уже используется, но у меня нет ни одного контейнера, работающего в нем. Это из-за psql?

Да, это наиболее вероятно, потому что у вас есть другой postgresql, использующий этот порт на локальной машине. Между тем, экземпляр postgres, работающий внутри вашего контейнера, по-прежнему использует порт 5432 (если только вы не изменили порт внутри контейнера, но я на 99,9% уверен, что вы этого не сделали). Поэтому следующая настройка порта неверна.

ports:
  - '3000:3000'

Это порт 3000 для любого IP-адреса, настроенного на вашем хосте, на порт 3000 вашего контейнера ... без службы, работающей на этом. Попробуйте:

ports:
  - '3000:5432'

Затем вы можете подключиться к postgres через порт 3000 на локальном компьютере, который будет пересылать пакеты на порт 5432 внутри контейнера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...