Я воспроизвел ваш сценарий так:
# docker run -p 5431:5432 --name postgres2 -e POSTGRES_PASSWORD=ad1234 -d postgres
# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d4030c577a24 postgres "docker-entrypoint.s…" 2 minutes ago Up 2 minutes 0.0.0.0:5431->5432/tcp postgres2
# sudo -u postgres psql -h localhost -p 5431
could not change directory to "/root": Permission denied
Password:
psql (10.5, server 11.2 (Debian 11.2-1.pgdg90+1))
WARNING: psql major version 10, server major version 11.
Some psql features might not work.
Type "help" for help.
postgres=# CREATE DATABASE mytestdb;
CREATE DATABASE
postgres=# \q
Теперь запускаем docker для pgadmin и возможность подключения к postgresql:
docker run -p 80:80 --link postgres2 -e "PGADMIN_DEFAULT_EMAIL=user@domain.com" -e "PGADMIN_DEFAULT_PASSWORD=SuperSecret" -d dpage/pgadmin4
С помощью приведенной выше команды вы можете связать докер postgres2 с докером pgadmin, а затем при создании соединения на pgadmin4 вы должны использовать:
- имя хоста / адрес: postgres2
- порт: 5432
- База данных обслуживания: postgres
- имя пользователя: postgres
с этим я подключился к Postgres из pgadmin4
Насколько я знаю, по умолчанию Docker PostgreSQL поставляется с подключением только по локальной сети, и если вы хотите добавить удаленное подключение, вы должны добавить "listen_addresses = '*'" в postgresql.conf