[Hilo Oficial] Docker

morlop

Chicos creo que tengo de momento lo que quiero montado, ahora me gustaría saber si hay alguna forma de hacer copias de seguridad o respaldos automáticos de los contenedores y sus volúmenes.

Algún contenedor o app para el servidor Linux para este tipo de cosas? La idea es tener otro hdd por USB e ir haciendo backups por si cae el disco principal tener respaldo.

2 respuestas
cabron

#211

Hacer copias de seguridad de un contenedor no tiene sentido, la gracia de los contenedores es que los destruyes y creas en cualquier momento y se queda todo igual, solo tendrías que guardar los dockerfile o los docker-compose.

Si necesitas hacer copia de seguridad de un contenedor probablemente has hecho algo mal.

En cuanto a los volumenes, no son más que directorios, puedes hacer copias de seguridad como de cualquier otro directorio.

Si el volumen se usa para algo específico, como las tablas de una base de datos, puedes gestionar la copia de seguridad igual que harías si no estuviera en contenedores

1 1 respuesta
morlop

#212 sí, con contenedores me refiero a los yaml de docker compose que uso en portainer.

Y con volúmenes me refiero precisamente a copiar los volúmenes en origen a destino cada X tiempo.

Igual que filesync en Windows pero para Linux y de manera automática programada.

Hay algo? Gracias

2 respuestas
Fyn4r

#213 rsync ?

1 1 respuesta
morlop

#214 voy a ver gracias

maxmalkav

#211 puedes mirar primero las recomendaciones sobre copia de seguridad de cada una de las aplicaciones que estés ejecutando. No es raro que la aplicación pueda generar sus propias copias de seguridad y así no tengas que marearte con posibles problemas de consistencia al hacer un backup de la base de datos. En el peor de los casos la documentación te dirá que partes son las más sensibles, generalmente, la base de datos, no quieres estar modificándola mientras la estás modificando en paralelo.

draz1c

#213 Yo lo tengo con rsnapshot en Docker. Se lo vi hacer a Pelado Nerd y la verdad es que es muy fácil, en unos minutos lo tienes montado.

1 respuesta
morlop

#217 estoy probando con duplicati y de momento bien.

La cosa es, tengo copia de los volúmenes, pero me gustaría copiar los docker-compose / yaml o lo que sea que tengan los contenedores.

¿Entiendo que eso debería ser importante para salvar en un backup no? Ya que ese compose es precisamente la raíz de mi contenedor con todo configurado.

morlop

Chicos soy incapaz de encontrar los .yml de docker compose de cada contenedor para tenerlos guardados automáticamente en una copia de seguridad.
¿Dónde o cómo puedo salvarlos?

2 respuestas
Yekale7

#219 en un repo? Con rsync y filtrando por extensión?

1 respuesta
draz1c

#219 Una idea que no me parece mala es tener todos unificados en un solo docker-compose.yml en un repositorio privado de, por ejemplo, github, y con portainer activando la opción de GitOps que cualquier cambio que hagas a ese docker-compose a traves de un webhook avise a Portainer y se despliegue/actualice automáticamente.

2 respuestas
morlop

#220 pero es que no sé dónde está su ubicación

#221 gracias pero no es por tenerlo automatizado ni nada, solo tener copia, porque tengo copia de los volúmenes, pero claro, luego qué yml tenías de ese contenedor para dejarlo igual? Es necesario tener el yml a mi entender.

2 respuestas
maxmalkav

#221 Tenerlo todo en un único archivo compose no es una buena estrategia. Lo ideal es que únicamente los contenedores relacionados tengan visibilidad entre ellos, todo en un mismo archivo (a menos que empieces a separar por redes) invalida esto.

Herramientas como Portainer permiten especificar el archivo YAML de un repositorio que quieres usar para levantar un stack. Yo tengo un YAML por stack, todos en un repositorio GitHub privado. Portainer usa un token de acceso para accederlo.

#222 cómo estás desplegando? Suena a que no lo haces desde consola.

1 respuesta
morlop

#223 portainer.

1 respuesta
maxmalkav

#224 Depende de cómo hayas desplegado Portainer.

Si definiste un "bind mount" para el directorio /data, los archivos YAML estarán en alguna parte de ese directorio. Si has usado volúmenes .. están en un volumen Docker asociado a Portainer.

Con Portainer una opción que funciona bien es la de tener un repositorio git (privado) y crear los "Stack" en Portainer desde la opción "Repository". No tiene mucho misterio más allá generar un token de acceso en GitHub para usarlo con Portainer para que éste pueda acceder al repositorio. Portainer te permite "actualizar" el stack si algo cambia en el repositorio, él solito se encarga de bajar el nuevo YAML y re-crear los contenedores.

1 1 respuesta
morlop

#225 vale lo que voy a hacer es copiar manualmente los compose del stack en gits y listo.

1 respuesta
maxmalkav

#226 es casi el mismo trabajo que integrar GitHub con Portainer, pero sin ninguno de los beneficios. Merece la pena probar la integración completa.

1
draz1c
#222morlop:

pero es que no sé dónde está su ubicación

Puedes tirar a pelo un

$ find / -type f -name "docker-compose.yml" 2>/dev/null

para saber donde estan todos los docker-compose.yml

*He puesto como ruta " / " para escanear el disco entero, pero si sabes donde pueden estar puedes cambiar la ruta y que se ejecute mas rapido.

2