postgres docker compose - ghdrako/doc_snipets GitHub Wiki
docker run --name basic-postgres --rm -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=postgres -e PGDATA=/var/lib/postgresql/data/pgdata -v /tmp:/var/lib/postgresql/data -p 5432:5432 -it postgres:14.1-alpine
docker exec -it basic-postgres /bin/sh
$ psql --username postgres
https://github.com/docker-library/docs/tree/master/postgres#initialization-scripts
- for linux
mkdir ~/postgres-volume
docker run --name postgres \
-e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=password \
-p 5432:5432 \
-v ~/postgres-volume/:/var/lib/postgresql/data \
-d postgres:latest
- for windows (powershell)
mkdir ~/postgres-volume
docker run --name postgres `
-e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=password `
-p 5432:5432 `
-v ${PWD}/postgres-volume:/var/lib/postgresql/data `
-d postgres:latest
connect to postgres
docker exec -it postgres psql -U postgres
$ \conninfo
$ \q
docker cp my_sample_dataset.sql postgres:/home
docker exec -it postgres psql -U postgres -f /home/my_sample_data
conect to specific database in postgres
docker exec -it postgres psql -U postgres -d mydb
verify
$ docker container ls -f name=postgres
$ docker logs postgres
version: "3"
services:
db:
image: "postgres:latest" "postgres:17-alpine"
ports:
- 5432:5432
env_file:
- .env
environment:
POSTGRES_USER: ${POSTGRES_USER:-postgres} # The PostgreSQL user (useful to connect to the database)
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-changeme} # The PostgreSQL password (useful to connect to the database)
POSTGRES_DB: ${POSTGRES_DB:-} # The PostgreSQL default database (automatically created at first launch)
healthcheck:
test: ["CMD-SHELL", pg_ready -U username -d default_database"
interval: 10s
timeout: 5s
retries: 5
volumes:
- postgres_data:/var/lib/postgresql/data
volumes:
postgres_data:
.env:
POSTGRES_DB=mydb
POSTGRES_USER=myuser
POSTGRES_PASSWORD=p@$$w0rd