I know, and read, a lot of posts here about backing up Docker volumes and data. The problem is that everyone has different setup, context and needs. So I need some help deciding what is best (and easy to manage) solution for my use case.
My setup is fairly simple. I only use docker compose files, have one service per directory and all services are using named volumes. Some have driver: local
to mount a local folder with config (always located in the same directory of the service). Each docker-compose.yaml
file has a backup container which is offen/docker-volume-backup
to backup the volumes. These backups are stored in a different folder (the same for all backups /media/storage/backups/
). I also have a service with Duplicati to backup the volume backups and some extra data (Nextcloud) to a remote server.
The reason why I use offen/docker-volume-backup
is to shut down some containers for extra safety but I'm not sure I actually need this because I'm the only user and I'm not planning on opening my server for other user.
Before I implemented docker-volume-backup and Duplicati all containers used bind mounts because that's less abstract for me, to actually see the files.
Now, my question is: is this a good setup? Is there an easier setup with less components/steps? Is it, for example, also good if I go back to bind mounts and just backup everything with Duplicati when I'm asleep at night?
Thank you for all the great advise!
offen docker-volume-backup actually works fine with bind mounts. I have been using it as my backup solution, backing up locally and to a backblaze s3 storage every night, pruning backups that are older than a week.
I like it because it allows me to shutdown containers & execute commands, like dumping a sql database before backup. Setting it up with proper Telegram Notifications is also great, as I always know when my backups fail or grow in size too large due to configuration errors.