Official docker image for postgresql.
Official docker image for pgadmin4.
Docker compose file
The docker compose file has been taken from here.
Environments
This Compose file contains the following environment variables:
POSTGRES_USERthe default value is postgresPOSTGRES_PASSWORDthe default value is changemePGADMIN_PORTthe default value is 5050PGADMIN_DEFAULT_EMAILthe default value is pgadmin4@pgadmin.orgPGADMIN_DEFAULT_PASSWORDthe default value is admin
version: "3.5"
services:
postgres:
container_name: postgres_container
image: postgres
environment:
POSTGRES_USER: ${POSTGRES_USER:-postgres}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-changeme}
PGDATA: /data/postgres
volumes:
- postgres:/data/postgres
ports:
- "5432:5432"
networks:
- postgres
restart: unless-stopped
pgadmin:
container_name: pgadmin_container
image: dpage/pgadmin4:6.13
environment:
PGADMIN_DEFAULT_EMAIL: ${PGADMIN_DEFAULT_EMAIL:-pgadmin4@pgadmin.org}
PGADMIN_DEFAULT_PASSWORD: ${PGADMIN_DEFAULT_PASSWORD:-admin}
PGADMIN_CONFIG_SERVER_MODE: "False"
volumes:
- pgadmin:/var/lib/pgadmin
ports:
- "${PGADMIN_PORT:-5050}:80"
networks:
- postgres
restart: unless-stopped
networks:
postgres:
driver: bridge
volumes:
postgres:
pgadmin:
Start services
docker compose up -d
Access to postgres:
localhost:5432- Username: postgres (as a default)
- Password: changeme (as a default)
Access to PgAdmin:
- URL: - http://localhost:5050
- Username: pgadmin4@pgadmin.org (as a default)
- Password: admin (as a default)
Add a new server in PgAdmin:
- Host name/address
postgres_container - Port
5432 - Username as
POSTGRES_USER, by default:postgres - Password as
POSTGRES_PASSWORD, by defaultchangeme
Logging
There are no easy way to configure pgadmin log verbosity and it can be overwhelming at times. It is possible to disable pgadmin logging on the container level.
Add the following to pgadmin service in the docker-compose.yml:
logging:
driver: "none"
Access between containers
They share a bridge network, to connect pgadmin to postgresql, you should use postgres_container as a dns in the pgadmin container.
Using the psql client from ubuntu
Install
sudo apt-get install postgresql-client
Connect to the postgresql
psql -p 5432 -h localhost -U postgres -W
