4.4 · Guardar y restaurar los volúmenes

Nivel 4 · Registros, fiabilidad y CI

4.4Guardar y restaurar los volúmenes

Objetivo: Poner en marcha una copia de seguridad probada de los datos Docker.
Tiempo estimado: 12 min · lectura autónoma · Si solo tienes 5 min: lee «Lo esencial en 30s» + el esquema.

Lo esencial en 30 segundos

  • Dump lógico + snapshot de volumen, complementarios : el dump (exportación portable) antes de migrar, el snapshot (archivo bruto de todo el estado) antes de cambiar — en práctica : dump regular + snapshot antes de cada operación.
  • Se guarda sin parar : un contenedor desechable monta el volumen en solo lectura y escribe el archivo fuera del volumen — la producción continúa durante la copia.
  • Reflejo de Idir : una copia no probada no existe — se restaura en un volumen nuevo, se inicia una base encima, se verifican los datos.

Mini-caso hilado — Idir prueba que la copia funciona antes de actualizar

Idir, devops junior en Argel, debe actualizar la base de producción : antes de tocar nada, vuelca la base hacia una carpeta fechada y snapshottea el volumen vía un contenedor desechable en solo lectura, sin parar la producción. Luego restaura en un volumen de prueba, inicia una base encima y verifica las tablas. Cuarto hito del hilo : los datos están guardados Y restaurables, prueba en mano.

Continuación de los casos 4.1-4.3 — Idir protege ahora los datos de los servicios expuestos.

1. Dos escuelas : dump o snapshot

El dump lógico (exportación vía exec) da un archivo portable, ideal antes de migrar. El snapshot del volumen (contenedor utilitario que archiva el volumen) captura todo el estado. En práctica : dump regular + snapshot antes de cambiar — como Idir antes de su actualización.

Ambos se complementan : el dump se relee y migra fácilmente, el snapshot restaura todo idéntico. Solo uno de los dos es media copia.

2. Guardar sin parar

No se para la base : se lanza un contenedor desechable que monta el mismo volumen en lectura y escribe el archivo fuera del volumen (carpeta local o almacenamiento remoto). La producción continúa durante la copia — Idir no interrumpe ningún servicio.

Automatizar y fechar : copia planificada, archivos fechados, duración de conservación definida (diarios + semanales). Archivar dentro del propio volumen es perder la copia con él.

3. Una copia no probada no existe

Ritual : restaurar en un volumen nuevo, iniciar una base encima, verificar los datos. Sin esta prueba, descubrirá el día D que el archivo está vacío o ilegible. Y nunca se restaura « para ver » en el volumen de producción.

Probar es probar : archivo reproducido, tablas verificadas, luego eliminación del volumen de prueba. La copia de Idir solo se valida tras este ritual.

Error frecuente de interpretación: « He copiado un archivo, así que está guardado — y guardo el archivo dentro del volumen, bien guardado ». No. Un archivo nunca reproducido puede estar vacío o ilegible, y guardado dentro del volumen desaparece con él. Contenedor desechable en solo lectura, archivo fuera del volumen y en otro lugar que la máquina, restauración probada en volumen nuevo : ese ritual es lo que hace una copia real.
Guardar y luego probar Sin parar, fuera del volumen, restaurado en prueba Dump y snapshot Portable +estado completoContenedor desechable Sololectura, prod no paradaArchivo fuera delvolumen Carpeta fechada, otro soporteRestauración prueba Volumennuevo + verificación
Sin parar, fuera del volumen, restaurado en prueba
Versión en texto del esquema (SEO / lectores de pantalla / traducción): 1) Idir vuelca la base hacia una carpeta fechada y snapshottea el volumen vía un contenedor desechable en solo lectura, sin parar la producción. 2) Guarda los archivos fuera del volumen, en otro soporte. 3) Restaura en un volumen nuevo, inicia una base de prueba y verifica las tablas. 4) Planifica la rutina (diaria + antes de cada cambio) con una duración de conservación. Lección : volcar sin parar, archivar fuera del volumen, restaurar para probar.

🔎 Ejemplo concreto — 🔎 Ejemplo concreto — Backup Postgres sin parar

El ritual de Idir : dump + snapshot, restauración en volumen nuevo.

docker compose exec bdd pg_dump -U app appdb > backups/appdb-$(date +%F).sql
# snapshot du volume :
docker run --rm -v projet_pgdata:/data:ro -v ./backups:/backup ubuntu:24.04 tar czf /backup/pgdata-$(date +%F).tgz -C /data .
# restauration test :
docker volume create pgdata_test
docker run --rm -v pgdata_test:/data -v ./backups:/backup ubuntu:24.04 tar xzf /backup/pgdata-2026-09-22.tgz -C /data

Lectura : dump SQL + snapshot de volumen, restauración en volumen nuevo.

Lección : nunca se restaura « para ver » en el volumen de producción.

Vocabulario de la sección

Dump
Exportación LÓGICA portable (archivo reproducible) de la base, ideal antes de migrar.

Ejemplo sencillo: Idir exporta su base hacia un archivo fechado antes de actualizar.

Lo que no es: un archivo bruto del disco.

Reflejo: antes de migrar : pensar dump portable.

Snapshot
Archivo BRUTO de todo el estado del volumen, que restaura idéntico.

Ejemplo sencillo: Idir archiva todo el volumen antes del cambio arriesgado.

Lo que no es: una exportación parcial que se relee a mano.

Reflejo: antes de cambiar : snapshottear todo el estado.

Montaje ro
Volumen montado en SOLO LECTURA para la copia : se lee sin riesgo de escribir.

Ejemplo sencillo: El contenedor desechable de Idir lee el volumen sin poder modificarlo.

Lo que no es: un montaje escribible que expone el volumen.

Reflejo: guardar : montar siempre en solo lectura.

Restauración prueba
Reproducción del archivo en un VOLUMEN NUEVO + verificación de los datos : la única prueba.

Ejemplo sencillo: Idir inicia una base de prueba y verifica las tablas antes de validar.

Lo que no es: un archivo nunca reproducido.

Reflejo: copia terminada : restaurar y verificar antes de creerse protegido.

En la práctica — En práctica — Su primera copia probada

  1. Vuelque su base hacia ./backups con la fecha.
  2. Snapshottee el volumen vía un contenedor --rm en solo lectura.
  3. Restaure en pgdata_test e inicie una base de prueba.
  4. Verifique las tablas, luego elimine el volumen de prueba.
Sus datos están guardados Y restaurables, prueba en mano.

Guion listo para decir — anunciar la copia antes de actualizar (30 s)

« Soy Idir : antes de actualizar, he volcado la base y snapshotteado el volumen sin parar la producción, y he reproducido el archivo en un volumen de prueba con las tablas verificadas. Si la actualización falla, restauramos en unos minutos. »

Para decir antes de toda operación arriesgada : muestre la verificación en el volumen de prueba.

Modelo copiar-pegar — dump + snapshot + restauración prueba

docker compose exec bdd pg_dump -U app appdb > backups/appdb-$(date +%F).sql
docker run --rm -v projet_pgdata:/data:ro -v ./backups:/backup ubuntu:24.04 tar czf /backup/pgdata-$(date +%F).tgz -C /data .
docker volume create pgdata_test
docker run --rm -v pgdata_test:/data -v ./backups:/backup ubuntu:24.04 tar xzf /backup/pgdata-2026-09-22.tgz -C /data

Antes de cada actualización

Como Idir : dump + snapshot justo antes, restauración probada — la red de seguridad de la operación.

Rutina diaria

Dump planificado fechado cada día, semanales conservados : la frecuencia sigue el coste de una pérdida.

Archivos fuera de la máquina

Copia en disco externo o almacenamiento remoto cifrado : una copia en el mismo disco no es una copia.

Restauración que falla en prueba

Buena noticia descubierta pronto : corregir el procedimiento ahora en lugar del día del siniestro.

✓ Buenas prácticas

  • Automatizar y fechar los archivos.
  • Archivar fuera del volumen, en otro soporte.
  • Probar cada restauración en volumen nuevo.

✗ Errores frecuentes

  • Guardar dentro del volumen (perdido con él).
  • Parar la producción para volcar (inútil).
  • No restaurar nunca para probar.

Puntos clave

  • Dump SQL + snapshot volumen : complementarios.
  • Desechable --rm en solo lectura, prod no parada.
  • Restauración prueba en volumen nuevo.
  • Retención + automatización = rutina.

Reto 48h — aplique mañana

En su base real : vuelque + snapshottee sin parar, restaure en un volumen nuevo y verifique los datos.

Lista de salida de la sección
  • Sé volcar y snapshottear sin parar la producción.
  • Sé archivar fuera del volumen con retención.
  • Sé restaurar en volumen nuevo y verificar.
Autoevaluación 1-5 : ¿mi última copia se ha reproducido y verificado?¿mis archivos sobrevivirían a la pérdida de la máquina?

Preguntas frecuentes

¿Qué frecuencia?

Como mínimo diaria para una base viva, antes de cada migración o actualización, con retención (diarios + semanales). Ajuste al coste de una pérdida de datos.

¿Dónde guardar los archivos?

En otro lugar que la máquina : disco externo, almacenamiento remoto cifrado. Una copia en el mismo disco no es una copia.

Comprueba tu comprensión

¿Qué copia es válida?

Recursos adicionales (opcional, para ir más allá)

Examen del nivel 4Preguntas inéditas y más difíciles para validar tus conocimientos