Reputation: 1004
I'm trying to connect postgresql
and pgadmin4
work together.
pgadmin4
works fine but when I try to create a new server I have 2 problems:
postgres
container is at other port that is not 5432 it dont recognize that port. It show this error: could not connect to server: Connection refused
Is the server running on host "172.17.0.5" and accepting
TCP/IP connections on port 5431?
postgres
container is at port 5432 the error is FATAL: password authentication failed for user "example"
.I execute this command to get postgres
container: docker run -p 5431:5432 --name postgres2 -e POSTGRES_PASSWORD=ad1234 -d postgres
.
I try, following other responses in stackoverflow, adding this command -c"listen_addresses='*'"
and I enter in the config file too but noone of this work to me.
Hope you can help me, thanks.
Ok I solved, it was a big fail by my part. I was using 172.17.0.5
(the IP container address) and what I need to use to connect is 172.17.01
(the Gateway).
Thanks for you time.
Upvotes: 0
Views: 5192
Reputation: 1602
I have reproduce your scenario this way:
# 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
Now starting docker for pgadmin and being able to connect to postgresql:
docker run -p 80:80 --link postgres2 -e "[email protected]" -e "PGADMIN_DEFAULT_PASSWORD=SuperSecret" -d dpage/pgadmin4
With the above command you can link the postgres2 docker to the pgadmin docker and then on creating a connection on pgadmin4 you should use:
with that, I've connected to Postgres from pgadmin4
As far as I know, docker PostgreSQL comes by default with localhost only connection and if you want to add remote connection you should add "listen_addresses = '*'" to postgresql.conf
Upvotes: 1