Update Database Containers and Others Reliably
Containers that don't have a built in script
- Stop the application (
docker-compose down) - Start just the database (
docker-compose up -d db) - Export all databases on the server into plaintext (
pg_dumpall -U username > data.sql) - Stop the database (
docker-compose down) - Remove the contents of the database directory, wherever you’ve mounted in
/var/lib/postgres - Update the tag you are using, and pull the new container (
postgres:12-alpine→postgres:14-alpine) - Start just the database (
docker-compose up -d db). This will recreate a fresh database, using the credentials from the environment. - Import the data into the new database (
psql -U username < data.sql) - Stop the database container (
docker-compose down) - Start everything (
docker-compose up -d)