Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

docker postgres pgadmin local connection

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:

  1. Pull postgres image from Docker Hub

    docker pull postgres:latest
    
  2. Run the container using the below command

    docker run -p 5432:5432 postgres
    
  3. Using docker's inspect command find the IP

  4. Use that IP, PORT, Username, and Password to connect in PGADMIN

  5. 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:

  1. Pull the latest postgres

    docker pull postgres:latest

  2. run the postgres containner:

    docker run -d -e POSTGRES_USER=user -e POSTGRES_PASSWORD=password123 --name db-my -p 5432:5432 --restart=always postgres

  3. Then installed the latest version of pgAdmin4 from pgadmin website

  4. Run pgAdmin 4 create new server, and input as following Host: 127.0.0.1 Port: 5432 User name: user password: password123

  5. Then everything is ok, connect to docker postgres instance success.

Alternatively, you could combine Postgres and Pgadmin in one docker-compose file, and login as user [email protected], pwd: admin. To add the Posgres server, use hostname postgres, port 5432.

version: '3'
services:
  postgres:
    image: postgres
    hostname: postgres
    ports:
      - "6543:5432"
    environment:
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: postgres
      POSTGRES_DB: TEST_SM
    volumes:
      - postgres-data:/var/lib/postgresql/data
    restart: unless-stopped

  pgadmin:
    image: dpage/pgadmin4
    depends_on:
      - postgres
    ports:
      - "5555:80"
    environment:
      PGADMIN_DEFAULT_EMAIL: [email protected]
      PGADMIN_DEFAULT_PASSWORD: admin
    restart: unless-stopped

volumes:
  postgres-data:

This is what i did

for postgres

docker run -p 5432:5432  --name container-postgresdb -e POSTGRES_PASSWORD=admin -d postgres

for pgadmin

docker run -p 5050:80  -e "[email protected]" -e "PGADMIN_DEFAULT_PASSWORD=admin"  -d dpage/pgadmin4

Connection string for pgadmin

host: host.docker.internal
database: postgres
user: postgres
password: admin

It works fine!!!!!