@OldJohn

Как подключиться к docker-контейнеру c PostgreSQL?

Ввожу в консоль такую строку:

docker run --name name -p 5432:5432 -e POSTGRES_PASSWORD=password -e POSTGRES_USER=user -e POSTGRES_DB=postgres_db -d postgres:13.3

При попытке подключиться через IntelliJ получаю ошибку что пароль не верен. Локально у меня стоит PostgreSQL, которая и висит на порту 5432 и там другой юзернейм и пароль.
Я удаляю этот контейнер, и создаю новый тем же способом, только на порт 5434:

docker run --name name -p 5434:5432 -e POSTGRES_PASSWORD=password -e POSTGRES_USER=user -e POSTGRES_DB=postgres_db -d postgres:13.3

Теперь при попытке подключиться получаю:

64c80593e31cd187993990.png
docker ps --all выдает:

64c805e56a5ca345015789.png
  • Вопрос задан
  • 1491 просмотр
Пригласить эксперта
Ответы на вопрос 2
mayton2019
@mayton2019 Куратор тега Java
Bigdata Engineer
Кажется я так делал.
docker network inspect .....

покажет тебе IP-шники внутри той сети в которой ты стартовал контейнер. Вот туда и подключайся.
Только в параметрах старта контейнера тебе надо имя этой сети указать.
Ответ написан
@Dementor
программист, архитектор, аналитик
Начнем с главного. Докер - это фактически виртуалка. А виртуалка - это фактически изолированный отдельный хост.

Если вы публикуете апку на контейнер с постгрей, то все ок - можно обращаться через локалхост. Если публикуете апку в отдельный контейнер, который вместе с постгрей поднимаете Докер Компоузером, то тоже все норм - главное в апке прописать название хоста, которое прописано для постгри в docker-compose.yml

А вот если вы с основной машины хотите стучаться в службу на виртуалке, как в службу на основном хосте, то вам нужно или делать переброску портов, или зайти через консоль в контейнер, там проверить текущий айпишник, по которому будете стучаться с вашей IDE. У меня было так:
ip addr show eth0 | grep -oP '(?<=inet\s)\d+(\.\d+){3}'
Ответ написан
Ваш ответ на вопрос

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

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