28-11-2021, 10:58 AM
Hola
Vamos a ver como hacer copias de seguridad de un docker para poder restaurarlo o bien valen para trasladarlo a otra nas (depende de la versión del paquete del docker).
Estamos suponiendo que en la definición del docker tenemos carpetas persistentes que van a una carpeta compartida de la nas.
Como vamos a hacer todas las operaciones en ella, vamos a la consola y nos situamos en la carpeta compartida que contiene las persistentes de nuestros contenedores.
Para hacer copia de un docker, primero hemos de pararlo para que no haya archivos usándose.
Ahora hacemos una compresión de la carpeta persistente del contenedor (que no tiene porqué coincidir con el nombre del contenedor)
Con esto se nos generará un archivo comprimido con los datos de la carpeta persistente en la carpeta compartida /share/DockerData
Ese archivo es nuestra copia de seguridad que podemos guardar en otra ubicación segura. Si vamos a ir manteniendo mas de uno, recomiendo poner en el nombre la fecha de la copia.
Ahora arrancaremos de nuevo el contenedor para dejarlo tal cual estaba antes de la copia.
Restauración
Ahora vamos a ver los pasos para restaurar el contenedor completo.
Digo completo ya que en los contenedores de base de datos, puede ser que no nos interese hacerlo así.
Me explico, una base de datos puede atender a varios servicios simultaneamente.
Por ejemplo a un NextCloud, a un OwnCloud, a una galería de fotos Coppermine, a un SeaFile, a....
Si restauramos TODO el contenedora de la BBDD, afectamos a todo los servicios que la usan.
Por eso en otro hilo expliqué como hacerlo con una pareja de contenedores relacionados entre ellos, una base de datos PostgreSQL y un NextCloud.
En ese hilo a nivel de base de datos, sólo trabajo con lo que afecta a NextCloud y no a otros servicios que pudiesen estar en la BBDD.
En nuestra caso vamos a restaurarlo completo necesitamos tener el contenedor y su carpeta persistente operativos.
Si fuese el caso de la nas no lo tiene, deberemos crear el contenedor con los mismos parámetros que lo hicimos en su día. Esto se hace para evitar el tema de posibles problemas con los versionados del contenedor que pueden afectar a su estructura.
Lo primero que haremos es ir a la carpeta compartida donde están nuestros datos persistentes (DockerData en el caso del ejemplo)
ahora detenemos el contenedor
Ahora borramos el contenido de la carpeta persistente de ese contenedor.
No tiene porqué coincidir con el nombre de nuestro contenedor. Lo podemos ver fácilmente en la cadena de definición del contenedor o incluso usando Portatiner para ver la propiedades del contendor que vamos a resturar.
Ahora descomprimimos el archivo de copia de seguridad que hemos dejado previamente en /share/DockerData
A ahora simplemente arrancamos el contenedor
Y con eso ya hemos recuperado y activado el contenedor.
Vamos a ver como hacer copias de seguridad de un docker para poder restaurarlo o bien valen para trasladarlo a otra nas (depende de la versión del paquete del docker).
Estamos suponiendo que en la definición del docker tenemos carpetas persistentes que van a una carpeta compartida de la nas.
Como vamos a hacer todas las operaciones en ella, vamos a la consola y nos situamos en la carpeta compartida que contiene las persistentes de nuestros contenedores.
Code:
cd /share/DockerData
Para hacer copia de un docker, primero hemos de pararlo para que no haya archivos usándose.
Code:
docker stop mi_contenedor
Ahora hacemos una compresión de la carpeta persistente del contenedor (que no tiene porqué coincidir con el nombre del contenedor)
Code:
tar -zvcf nombre_contenedor.tar.ga nombre_carpeta_persistente
Ese archivo es nuestra copia de seguridad que podemos guardar en otra ubicación segura. Si vamos a ir manteniendo mas de uno, recomiendo poner en el nombre la fecha de la copia.
Ahora arrancaremos de nuevo el contenedor para dejarlo tal cual estaba antes de la copia.
Code:
docker start mi_contenedor
Restauración
Ahora vamos a ver los pasos para restaurar el contenedor completo.
Digo completo ya que en los contenedores de base de datos, puede ser que no nos interese hacerlo así.
Me explico, una base de datos puede atender a varios servicios simultaneamente.
Por ejemplo a un NextCloud, a un OwnCloud, a una galería de fotos Coppermine, a un SeaFile, a....
Si restauramos TODO el contenedora de la BBDD, afectamos a todo los servicios que la usan.
Por eso en otro hilo expliqué como hacerlo con una pareja de contenedores relacionados entre ellos, una base de datos PostgreSQL y un NextCloud.
En ese hilo a nivel de base de datos, sólo trabajo con lo que afecta a NextCloud y no a otros servicios que pudiesen estar en la BBDD.
En nuestra caso vamos a restaurarlo completo necesitamos tener el contenedor y su carpeta persistente operativos.
Si fuese el caso de la nas no lo tiene, deberemos crear el contenedor con los mismos parámetros que lo hicimos en su día. Esto se hace para evitar el tema de posibles problemas con los versionados del contenedor que pueden afectar a su estructura.
Lo primero que haremos es ir a la carpeta compartida donde están nuestros datos persistentes (DockerData en el caso del ejemplo)
Code:
cd /share/DockerData
ahora detenemos el contenedor
Code:
docker stop mi_contenedor
No tiene porqué coincidir con el nombre de nuestro contenedor. Lo podemos ver fácilmente en la cadena de definición del contenedor o incluso usando Portatiner para ver la propiedades del contendor que vamos a resturar.
Code:
rm -Rf /share/DockerData/nombre_carpeta_persistente
Ahora descomprimimos el archivo de copia de seguridad que hemos dejado previamente en /share/DockerData
Code:
tar -xzvf nombre_contenedor.tar.gz
A ahora simplemente arrancamos el contenedor
Code:
docker start mi_contenedor
Y con eso ya hemos recuperado y activado el contenedor.
Un saludo
Agur eta ondo ibili
Ganekogorta (TS-469Pro, TVS-673e, QBoat Sunny, TS-453Be, TR-002 y QHora-301w) Ʀɐɯ0η
Agur eta ondo ibili
Ganekogorta (TS-469Pro, TVS-673e, QBoat Sunny, TS-453Be, TR-002 y QHora-301w) Ʀɐɯ0η