Skip to content

Backup and restore MySQL Docker database

How to backup and restore a MySQL or MariaDB database that's running via Docker or Docker Compose.

To backup / make a dump of a MySQL or MariaDB database within a Docker container, just run:

Backup
docker exec DATABASECONTAINER mysqldump -u DATABASEUSER --password=DATABASEPASSWORD DATABASE > backup.sql

To restore a MySQL or MariaDB database from the mysqldump:

Restore
cat backup.sql | docker exec -i DATABASECONTAINER mysql -u DATABASEUSER --password=DATABASEPASSWORD DATABASE

So a real-world example might look like this:

Backup Example
docker exec wordpress-mysql mysqldump -u root --password=correcthorsebatterystaple wordpressdb > backup.sql

And restoring:

Restore Example
cat backup.sql | docker exec -i wordpress-mysql mysql -u root --password=correcthorsebatterystaple wordpressdb