Skip to main content

Volume Backup And Restoration Tool for Docker

Project description

vbart

GitHub PyPI PyPI - Status GitHub last commit GitHub issues PyPI - Downloads GitHub repo size PyPI - Python Version


Dinobox logo

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

vbart-0.1.10.tar.gz (9.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

vbart-0.1.10-py3-none-any.whl (15.0 kB view details)

Uploaded Python 3

File details

Details for the file vbart-0.1.10.tar.gz.

File metadata

  • Download URL: vbart-0.1.10.tar.gz
  • Upload date:
  • Size: 9.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.24 {"installer":{"name":"uv","version":"0.9.24","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for vbart-0.1.10.tar.gz
Algorithm Hash digest
SHA256 ddf5b5901a7effa0d5cb252b53f6d5dec5518278751ed1fd0b5f197ff6503026
MD5 3e18dcbc38b5c40ec2ed781b7feda621
BLAKE2b-256 1723b2a49048305c2f3c9c72d1840f5497b939e9671612b12bc34c2f88ff1174

See more details on using hashes here.

File details

Details for the file vbart-0.1.10-py3-none-any.whl.

File metadata

  • Download URL: vbart-0.1.10-py3-none-any.whl
  • Upload date:
  • Size: 15.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.24 {"installer":{"name":"uv","version":"0.9.24","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for vbart-0.1.10-py3-none-any.whl
Algorithm Hash digest
SHA256 b6fc8f21959f87f78ebfe5f35eb4e5512dfbca25cc3a6a87f6a65f506f764086
MD5 b2edc6bed345db76f209819b595bd1de
BLAKE2b-256 24cb8b56027595ac71be8c82248cbf589980aea5ab763d2cc2477910b2e1ccfc

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page