Volume Backup And Restoration Tool for Docker
Project description
vbart
Volume Backup And Restoration Tool for Docker
Why is backing up named docker volumes so hard? There's an extension for Docker Desktop, but I just want a simple, easy-to-use command line tool that allows me to backup and restore my named docker volumes. That's what vbart does.
With vbart you can:
- Backup a single named volume.
- Backup all active named volumes on your host.
- Backup just the volumes you list in a separate file.
- Restore a single backup to a named volume.
All backups are stored in compressed (xz) tar archives. Once you create a backup, you can copy it off-host, install it on another machine, share with friends, etc.
Installation
Install it with pipx:
pipx install vbart
Alternatively, you can create a separate virtual environment and install it the traditional way:
pip3 install vbart
You can also install it with uv:
uv tool install vbart
Usage
For an overview, run:
vbart -h
Backup a Single Volume
vbart backup volume_name
For example, to backup a volume named mysql_db
, use:
vbart backup mysql_db
vbart will then create a backup file in your current working directory named:
YYYYMMDD-mysql_db-backup.xz
Backup Multiple Volumes
vbart backups [-v VOLUMES]
Note the plural command name (backups
as opposed to backup
).
VOLUMES
is the optional name of a textfile that contains case
sensitive volume names (one per line) that you want to backup. Within
VOLUMES
blank lines and lines beginning with #
are ignored, so you
can comment the file if you wish.
If VOLUMES
is not specified, all active docker volumes on the current
host are backed up. All volume backups are saved in the current working
directory and named as:
YYYYMMDD-{volume_name}-backup.xz
Restore a Single Volume
vbart restore backup_file volume_name
The first argument (backup_file
) is the compressed tar archive you
created when you made a backup. The file must have a .xz
extension.
The second argument (volume_name
) is the named volume to create from
the backup. If the named volume already exists, vbart will terminate
with no action. Otherwise, a new empty volume will be created with the
given name and the backup will be restored to that volume.
Refresh vbart
If vbart is interrupted during execution (e.g. hitting Control+C
),
then there may be dangling docker containers that hang on to existing
volumes. Running the refresh command will clear those dangling
containers.
Also, when you run vbart for the first time it creates a small
(alpine-based) docker image to perform the actual backups. This image is
called vbart_utility
. The refresh command also deletes the utility
image, causing it to be recreated the next time you run vbart.
To refresh vbart, use:
vbart refresh
License
This project is licensed under the MIT License. See the LICENSE file for details.
Acknowledgements
This project uses the docker library which is licensed under the Apache 2.0 License. The full license text can be found in the LICENSE-APACHE-2_0 file.
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
Built Distribution
File details
Details for the file vbart-0.1.4.tar.gz
.
File metadata
- Download URL: vbart-0.1.4.tar.gz
- Upload date:
- Size: 14.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.4.16
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c6fcb2848fe4f23241eb6bc84f29126a038ce97655f002a0536791cc0d928c3b |
|
MD5 | c2fb6c872f7ee4a23c529a5eca87d45f |
|
BLAKE2b-256 | ccd12fd942971f56d3f46c1e9b5b55ae1790a0f499c13805f4c09e1d1e448ef2 |
File details
Details for the file vbart-0.1.4-py3-none-any.whl
.
File metadata
- Download URL: vbart-0.1.4-py3-none-any.whl
- Upload date:
- Size: 19.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.4.16
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 610c48ece97c8ffde1454512649b7c0009293c0c2e1a64cb901a0c32783df0e7 |
|
MD5 | 53def14b649a85b79c52dcb715b0b897 |
|
BLAKE2b-256 | 002a8f0bcc6d027bd4e81ebac1a5c71c9d1ff783fa9aa9bb2c16f8f630082949 |