Saya telah mereproduksi skenario Anda dengan cara ini:
# 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
Sekarang memulai buruh pelabuhan untuk pgadmin dan dapat terhubung ke postgresql:
docker run -p 80:80 --link postgres2 -e "[email protected]" -e "PGADMIN_DEFAULT_PASSWORD=SuperSecret" -d dpage/pgadmin4
Dengan perintah di atas Anda dapat menautkan buruh pelabuhan postgres2 ke buruh pelabuhan pgadmin dan kemudian membuat koneksi di pgadmin4 Anda harus menggunakan:
- nama/alamat host:postgres2
- pelabuhan:5432
- Database pemeliharaan:postgres
- nama pengguna:postgres
dengan itu, saya telah terhubung ke Postgres dari pgadmin4
Sejauh yang saya tahu, docker PostgreSQL datang secara default dengan koneksi localhost saja dan jika Anda ingin menambahkan koneksi jarak jauh, Anda harus menambahkan "listen_addresses ='*'" ke postgresql.conf