Docker Volume Backups
Backups are always an issue. I plan to switch to ZFS for the snapshotting and remote sync features, until then I have take the useful volume-backup and broken it until it works with rdiff-backup
Build the container
First you have to clone the repo and build the container
git clone https://github.com/dugite-code/volume-backup.git cd volume-backup docker image build -t vbackup:1.0 .
Backup
Now you can run the container mounting the [volume-name]
at /volume
and your [backup-dir]
at /backup
docker run -v [volume-name]:/volume -v [backup-dir]:/backup --rm vbackup:1.0 backup
Additional rdiff-backup options and be passed via the -o
switch and a quoted option for example -o "--exclude ignore.me"
Restore
To restore you must supply some form of options i.e. -o "-r 10D"
or restore backup from 10 Days ago
docker run -v [volume-name]:/volume -v [backup-dir]:/backup --rm vbackup:1.0 restore -o "-r 10D"
Trimming old files
With incremental backups it's important to occasionally trim old files that just don't exist anymore. Like Restore you must provide some form of option.
Prior to doing a backup I will run this command to remove files older than 20 Backups
docker run -v [backup-dir]:/backup --rm vbackup:1.0 remote -v -o "--remove-older-than 20B"
I hope you found this helpful. It's not a very clean script, I had to hack apart the reference script quite a bit in order to get it all working. But it serves it's purpose quite well.