Restauración de Base de Datos MySQL en Docker
Esta guía describe cómo restaurar o recuperar los datos almacenados en los volúmenes físicos de MariaDB/MySQL en caso de fallos graves en el demonio de Docker o corrupción de capas.
⚠️ Consideraciones Previas y Seguridad
- Se recomienda encarecidamente contar con un snapshot previo de la máquina virtual (GCP o AWS).
- Asegúrese de que el servidor dispone de espacio libre suficiente en disco (
df -h). - Resguarde el contenido de
storage/appantes de realizar operaciones destructivas sobre el motor de contenedores.
🛠️ Procedimiento de Respaldo y Recuperación de Volúmenes
-
Acceda por SSH y cambie a superusuario:
sudo su - -
Ubique la carpeta del volumen de MariaDB dentro del directorio de volúmenes de Docker:
cd /var/lib/docker/volumes ls -laIdentifique la carpeta del volumen de la base de datos (por ejemplo
pro9_mariadb_dataomultifacturalo_mariadb_data). -
Copie de forma segura el volumen completo a un directorio fuera de Docker:
cp -r nombre_volumen_mariadb /home/backup_mariadb_raw -
Si requiere purgar y reinstalar el entorno Docker por corrupción de paquetes:
docker system prune -a --volumes -
Diríjase a la carpeta del proyecto y levante los contenedores para que Docker genere la nueva estructura de volúmenes:
cd /ruta/del/proyecto docker compose up -d -
Detenga los servicios de base de datos para reemplazar los datos limpios por los restaurados:
docker compose down -
Reemplace los archivos en
/var/lib/docker/volumes/:cd /var/lib/docker/volumes mv nombre_volumen_mariadb nombre_volumen_mariadb_nuevo_vacio cp -r /home/backup_mariadb_raw/nombre_volumen_mariadb ./ -
Regrese a la carpeta del proyecto y reinicie los servicios:
cd /ruta/del/proyecto docker compose up -d -
Valide el acceso ingresando a la aplicación web y verificando la persistencia de las empresas y comprobantes.