Use Docker to Backup and Restore PostgreSQL Databases
4 min read
Docker is a convenient way to gain access to applications and their utilities without having to install them on your local machine. By using Docker, you can quickly pull an image of an application and run the necessary commands within a container. When the commands are done running, everything is conveniently cleaned up, eliminating the clutter associated with a local application install.
This guide will walk you through the steps to use Docker to backup a PostgreSQL database. This approach works with databases running in a Docker container, locally hosted, or on a remote server.
This is the approach DBSnapper uses to backup and sanitize PostgreSQL database when using the pgdocker database engine. DBSnapper takes care of the details for you, so you don't have to worry about it.
The steps we will follow:
- Pull the PostgreSQL Docker image
- Backup with the
- Restore with the
- Docker installed on your local machine
The first step is to
docker pull the PostgreSQL Docker image. This will download the image from Docker Hub and make it available to run as a container on your local machine.
docker pull postgres:latest
This command pulles the latest version of the PostgreSQL image from Docker Hub. You can also specify a specific version of the image by appending the version number to the image name. For example, to pull version 15.5 of the PostgreSQL image, you would run the following command:
docker pull postgres:15.5
Once the image is downloaded, you can run the
pg_dump command in the docker container to backup the database. The command below will backup the
mydb database to a file named
mydb.sql in the current directory. The
--rm flag tells Docker to remove the container when the command is finished running.
docker run --rm -v $(pwd):/backup postgres:latest pg_dump -h <host> -U <user> -d <database> -f /backup/mydb.sql
The command above mounts the
\backup directory in the container as a volume
-v to the host's current directory
$(pwd). This allows the
pg_dump command to write the backup file to the current directory on your local machine.
See our article: How to Create a PostgreSQL Database Snapshot to learn more about the PostgreSQL
If you need to restore the database from the backup file, you can use the
pg_restore command in the docker container. The command below will restore the
mydb database from the
mydb.sql file in the current directory.
docker run --rm -v $(pwd):/backup postgres:latest pg_restore -h <host> -U <user> -d <database> -f /backup/mydb.sql
See our article: How to Restore a PostgreSQL database snapshot with
pg_restoreto learn more about the PostgreSQL
Using Docker to backup PostgreSQL databases is a convenient way to backup your database without having to install PostgreSQL on your local machine. This approach also works with databases running in a Docker container, locally hosted, or on a remote server.
The DBSnapper app has the ability to use Docker images to access the PostgreSQL database utilities and simplifies creating, sanitizing, and restoring database snapshots. When combined with the DBSnapper Cloud, management of your snapshots is much easier with private cloud storage profiles and team sharing options. Install the DBSnapper Agent to get started, and Sign up for the DBSnapper Cloud today!
If you have any questions or feedback on this article, please get in touch on our contact page.