Persistent Volume Backup
CommunityEnterpriseAll Containers as seen in Docker are ephemeral. You can execute a container with auto destroy option (—-rm) which will remove all changes made in docker images during runtime by default. This feature is very useful when you want to execute your computations in never changing environment but is useless when computation result should be preserved instead of removed. In this case you will use a Docker Persistent Volumes.
This brings a new challenge to data backup solution. Fortunate most of the challenges we can meet here are almost the same as we have in standard bare metal or virtualized environments. All data stored in different kind of databases should be saved with dedicated Bacula Enterprise Plugins exploiting network backup data dump.
You should refer to appropriate Bacula Enterprise Plugin documentation for more details. (Database Plugins main page)
On the other hand most non-database applications stores its data as a simple flat files we can backup as-is without forcing complicated transactions or data consistency procedures. This case is handled directly with Docker Plugin using a dedicated Bacula Archive container executed from a prepared image.
The Persistent Volume files data backup is performed with a dedicated helper container and consist of the following steps:
Prepare a local log archive Docker Volume.
Execute a dedicated Bacula Archive container which will access Docker Persistent Volume data files for backup.
Save Volume data files stream from container.
Terminate Bacula Archive container when done.
Docker volumes can be selected for backup individually, and volume selection for backup can also be done automatically for every container selected.
If a selected volume can not be found, then a single job error will be generated and the backup will proceed to the next volume unless the backup job is configured to be aborted on error.
When operations are executed using a remote Docker endpoint, volume backup or restore functionality is disabled as this feature is not supported with remote Docker. This is a current plugin limitation and will be removed in the future.
To see all the options, go to Docker: Configuration.
Go back to: Backup.