I have created an ubuntu image with nginx, php and postgres.
I want to connect the postgres database in my current image with pgadmin
located on my local machine.
I have tried using docker inspector to try to use the image ip to make a connection with my local pgadmin but without much success. I've also tried configuring some ports on local to make connection work.
It's a valid question don't know why people feel "doesn't seem possible to answer that question".
So, here's how I do what you are trying to do:
Pull postgres image from Docker Hub
docker pull postgres:latest
Run the container using the below command
docker run -p 5432:5432 postgres
Using docker's inspect command find the IP
Use that IP, PORT, Username, and Password to connect in PGADMIN
You can also do a simple telnet like below to confirm if you can access docker postgres container:
telnet IP_ADDRESS 5432
what I have done success on windows 10 running docker for windows 1.12.6(9655), the step is like below:
Pull the latest postgres
docker pull postgres:latest
run the postgres containner
docker run -d -e POSTGRES_USER=user -e POSTGRES_PASSWORD=password123 --name db-my -p 5432:5432 --restart=always postgres
Then installed the latest version of pgAdmin4 from pgadmin website
Run pgAdmin 4 create new server, and input as following Host: 127.0.0.1 Port: 5432 User name: user password: password123
Alternatively, you could combine Postgres and Pgadmin in one
docker-compose
file, and login as userpgadmin4@pgadmin.org
, pwd:admin
. To add the Posgres server, use hostnamepostgres
, port5432
.You have to expose the postgres port in the container to you local system. You do this by running your container like this:
docker run -p 5432:5432 <name/id of container>
when connecting with your GUI client or CLI make sure to use the ip-address not localhost even if your ip-address is the localhost ip-address.
docker ps
would give you the ip address your postgres container is on.The solution I tried and worked for me, was to create a docker compose file where I included postgress and pgadmin as services. For more details: Connecting pgadmin to postgres in docker
If pgAdmin is intended to be run wihtin same Ubuntu host/guest, then you need to link postgres container, so it could be resolved by a name.
1. Run a postgres container:
2. Run pgAdmin container:
3. Now when adding new server in phAdmin web app, use
some-postgres
as server nameNote the
--link some-postgres
when we were bringing up the pgAdmin. This command makes postgres container visible to pgAdmin container.