Tan importante como montar tus dockers y tenerlos en funcionamiento es tener una copia de seguridad de los datos (volúmenes) de los mismos por si la máquina en la que se alojan desaparece, el disco se corrompe, etc.
Habitualmente el desarrollador del aplicativo o del contenedor nos indicará qué directorios y ficheros son persistentes, lo que facilitará la tarea de decidir qué archivos o directorios tenemos que incluir en la copia de seguridad.
Existen diferentes alternativas para realizar estos backups, pero personalmente prefiero la más sencilla: un script que se ejecuta en un cron y que empaqueta los diferentes volúmenes del contenedor en un archivo tar.
El script que os muestro a continuación permite empaquetar los volúmenes de un contenedor en caso de que éste no use bases de datos o de que éstas sean de tipo sqlite3, pero puede fácilmente modificarse para soportar otros tipos de bases de datos.
Es importante notar que el script asume que todos los volúmenes del contenedor comparten el mismo directorio raíz lo que, por otro lado, no es difícil de conseguir…
Puedes descargar el script que realiza el backup de un contenedor aquí y para ejecutarlo simplemente debes pasarle como parámetro un archivo que contenga la configuración de backup de ese contenedor.
Asimismo, si en algún momento necesitas restaurar un backup puedes usar este script, aunque en este caso los parámetros a enviar al script son 2: el path al archivo de configuración de backup de ese contenedor y el path del archivo de backup que se desea restaurar.
En cuanto al archivo de configuración al que hacemos referencia, tendrá al siguiente formato.
Como habrás visto, tanto los scripts como la propia configuración es de lo más sencillo y es que, a veces, no hace falta complicarse la vida…