No project description provided
Project description
docker-dbdump - database backup for docker
This tool makes backups of databases, which run in Docker containers. Please create an issue if you run into problems.
How does it work?
- Iterate over all running Docker containers
- Check if it's a database container (MySQL, MariaDB, PostgreSQL, PostgriSQL)
- If so, run mysqldump or the equivalent
- Use
-v/--verbose, it's helpful
Features
- Creates rsyncable zip files
- Back up all database containers, a few specified ones or all containers with some exceptions
- Creates a state file (useful for monitoring)
dev environment
sudo docker-compose up # runs some DB container
sudo poetry install
kmille@linbox:docker-dbdump sudo poetry run docker-dbdump -h
[sudo] password for kmille:
usage: [-h] [-v] [--backup-dir BACKUP_DIR] [-l [LIST]] [-a] [-b BACKUP [BACKUP ...]] [-i IGNORE_CONTAINER [IGNORE_CONTAINER ...]] [-s]
options:
-h, --help show this help message and exit
-v, --verbose print verbose output
--backup-dir BACKUP_DIR
output directory for backups
-l [LIST], --list [LIST]
show running docker containers. Add argument to grep
-a, --all backup all running db containers
-b BACKUP [BACKUP ...], --backup BACKUP [BACKUP ...]
only backup specific containers
-i IGNORE_CONTAINER [IGNORE_CONTAINER ...], --ignore-container IGNORE_CONTAINER [IGNORE_CONTAINER ...]
backup all running db containers except the ones specified (can be used multiple times)
-s, --update-state-file
update state file (/var/log/docker-dbdump.done) with current date if everything succeeds
Example run
kmille@linbox:docker-dbdump sudo poetry run docker-dbdump -l
docker-dbdump-maria-db-1 mariadb:11.2.2 /home/kmille/projects/docker-dbdump
docker-dbdump-postgres-db-1 postgres:latest /home/kmille/projects/docker-dbdump
docker-dbdump-postgis-db-1 postgis/postgis:latest /home/kmille/projects/docker-dbdump
docker-dbdump-mysql-db-1 mysql:latest /home/kmille/projects/docker-dbdump
kmille@linbox:docker-dbdump sudo poetry run docker-dbdump -l maria
docker-dbdump-maria-db-1 mariadb:11.2.2 /home/kmille/projects/docker-dbdump
kmille@linbox:docker-dbdump sudo poetry run docker-dbdump --all --update-state-file
[2024-02-15 21:52:05,368 INFO] Starting to backup container docker-dbdump-maria-db-1 (mariadb)
[2024-02-15 21:52:05,933 INFO] Done backuping container docker-dbdump-maria-db-1 (mariadb)
[2024-02-15 21:52:05,936 INFO] Starting to backup container docker-dbdump-postgres-db-1 (postgres)
[2024-02-15 21:52:06,244 INFO] Done backuping container docker-dbdump-postgres-db-1 (postgres)
[2024-02-15 21:52:06,248 INFO] Starting to backup container docker-dbdump-postgis-db-1 (postgres)
[2024-02-15 21:52:07,013 INFO] Done backuping container docker-dbdump-postgis-db-1 (postgres)
[2024-02-15 21:52:07,016 INFO] Starting to backup container docker-dbdump-mysql-db-1 (mysql)
[2024-02-15 21:52:07,744 INFO] Done backuping container docker-dbdump-mysql-db-1 (mysql)
[2024-02-15 21:52:07,744 INFO] Updated state file /var/log/docker-dbdump.done
[2024-02-15 21:52:07,744 INFO] Everything worked fine. Exiting with exit code 0.
kmille@linbox:docker-dbdump sudo poetry run docker-dbdump --backup docker-dbdump-postgres-db-1 --verbose
[2024-02-15 21:54:16,903 DEBUG] Dumping backups to /backups
[2024-02-15 21:54:16,908 INFO] Starting to backup container docker-dbdump-postgres-db-1 (postgres)
[2024-02-15 21:54:16,908 DEBUG] Running: 'pg_dumpall --username postgres'
[2024-02-15 21:54:17,187 DEBUG] Created backup looks good
[2024-02-15 21:54:17,190 DEBUG] Sucessfully zipped backup
[2024-02-15 21:54:17,191 DEBUG] Sucessfully wrote backup to /backups/_home_kmille_projects_docker-dbdump_docker-dbdump-postgres-db-1_postgres_postgres.sql.gz
[2024-02-15 21:54:17,191 INFO] Done backuping container docker-dbdump-postgres-db-1 (postgres)
[2024-02-15 21:54:17,191 INFO] Everything worked fine. Exiting with exit code 0.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
docker_dbdump-0.1.1a0.tar.gz
(17.5 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file docker_dbdump-0.1.1a0.tar.gz.
File metadata
- Download URL: docker_dbdump-0.1.1a0.tar.gz
- Upload date:
- Size: 17.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.1.1 CPython/3.13.2 Linux/6.12.12-hardened1-2-hardened
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
be4cc3b6dd4ed195a07dc62f5f73af23c3651f1035264db8c4ad737dbac950ba
|
|
| MD5 |
4842a192a1725928c63a3649a95e3c17
|
|
| BLAKE2b-256 |
a9d7c68d0a306b558e7e8646a3bccc18e089891e468b38ad4908f708445e21b0
|
File details
Details for the file docker_dbdump-0.1.1a0-py3-none-any.whl.
File metadata
- Download URL: docker_dbdump-0.1.1a0-py3-none-any.whl
- Upload date:
- Size: 18.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.1.1 CPython/3.13.2 Linux/6.12.12-hardened1-2-hardened
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b8bc19576b82352b1a5a49ebf0fff7a8f6b729c86170ee80e7310b9e9365ad0d
|
|
| MD5 |
3873d8746ad892e2081890263db622cb
|
|
| BLAKE2b-256 |
8a5de0d7c144ee450b514f38666f452e04b65f03f89e09106a22ca71d5eb773b
|