A collection of useful commands for running, backing up, and restoring PostgreSQL databases with Podman.
podman run --name postgres-db --rm -e POSTGRES_PASSWORD=mysecretpassword -e POSTGRES_USER=postgres -e POSTGRES_DB=postgres -p 5432:5432 -v postgres-data:/var/lib/postgresql/data postgres:latest--name postgres-db: Names the container--rm: Automatically removes the container when it stops-e POSTGRES_PASSWORD=mysecretpassword: Sets the database password-e POSTGRES_USER=postgres: Sets the database username-e POSTGRES_DB=postgres: Creates a default database-p 5432:5432: Maps container port to host port-v postgres-data:/var/lib/postgresql/data: Creates a persistent volume for datapostgres:latest: Uses the latest PostgreSQL image (specify version likepostgres:15if needed)
podman exec postgres-db pg_dump -U postgres -d postgres > backup.sqlPGPASSWORD=mysecretpassword podman exec postgres-db pg_dump -U postgres -d postgres > backup.sqlpodman exec postgres-db pg_dump -U postgres -d postgres | gzip > backup.sql.gzpodman exec postgres-db pg_dump -U postgres -d postgres -Fc > backup.dumpcat backup.sql | podman exec -i postgres-db psql -U postgres -d postgresPGPASSWORD=mysecretpassword cat backup.sql | podman exec -i postgres-db psql -U postgres -d postgresgunzip -c backup.sql.gz | podman exec -i postgres-db psql -U postgres -d postgrespodman exec postgres-db pg_restore -U postgres -d postgres -c backup.dumpcat backup.sql | podman exec -i postgres-db psql -U postgres -d postgres -1podman exec -it postgres-db psql -U postgrespodman logs postgres-dbpodman stop postgres-dbpodman volume rm postgres-data