Example Reference
Respaldo y Restauración de MongoDB desde VM en GCP hacia Contenedor Local en Windows
Section titled “Respaldo y Restauración de MongoDB desde VM en GCP hacia Contenedor Local en Windows”📌 Objetivo
Section titled “📌 Objetivo”Realizar un respaldo (mongodump) de una base de datos MongoDB que corre dentro de un contenedor Docker en una VM de Google Cloud Platform (GCP), transferirlo a una máquina local Windows y restaurarlo en un contenedor MongoDB local.
1. Generar respaldo dentro del contenedor en la VM
Section titled “1. Generar respaldo dentro del contenedor en la VM”1.1 Conectarse a la VM
Section titled “1.1 Conectarse a la VM”gcloud compute ssh NOMBRE_DE_LA_VM --zone=ZONA1.2 Identificar el contenedor MongoDB
Section titled “1.2 Identificar el contenedor MongoDB”docker ps1.3 Ejecutar mongodump dentro del contenedor
Section titled “1.3 Ejecutar mongodump dentro del contenedor”docker exec -it NOMBRE_DEL_CONTENEDOR mongodump --out /respaldoDB1.4 Verificar que el respaldo se generó
Section titled “1.4 Verificar que el respaldo se generó”docker exec -it NOMBRE_DEL_CONTENEDOR ls -l /2. Copiar el respaldo del contenedor hacia la VM
Section titled “2. Copiar el respaldo del contenedor hacia la VM”docker cp NOMBRE_DEL_CONTENEDOR:/respaldoDB ~/respaldoDBVerificar:
ls -l ~/3. Copiar el respaldo desde la VM hacia la máquina local Windows
Section titled “3. Copiar el respaldo desde la VM hacia la máquina local Windows”Ejecutar desde la máquina local, no desde la VM:
gcloud compute scp --recurse \ NOMBRE_DE_LA_VM:/home/USUARIO_VM/respaldoDB \ ./respaldoDB_local \ --zone=ZONA``Verificar en Windows:```bash./respaldoDB_local4. Restaurar el respaldo en el contenedor MongoDB local
Section titled “4. Restaurar el respaldo en el contenedor MongoDB local”4.1 Identificar el contenedor local
Section titled “4.1 Identificar el contenedor local”docker ps4.2 Copiar el respaldo desde Windows hacia el contenedor
Section titled “4.2 Copiar el respaldo desde Windows hacia el contenedor”docker cp ./respaldoDB_local NOMBRE_CONTENEDOR_LOCAL:/tmp/respaldoDB4.3 Ejecutar mongorestore dentro del contenedor
Section titled “4.3 Ejecutar mongorestore dentro del contenedor”docker exec -it NOMBRE_CONTENEDOR_LOCAL \ mongorestore /tmp/respaldoDBSi requiere autenticación:
docker exec -it NOMBRE_CONTENEDOR_LOCAL \ mongorestore --uri="mongodb://usuario:password@localhost:27017" \ /tmp/respaldoDB5. Limpieza opcional
Section titled “5. Limpieza opcional”docker exec -it NOMBRE_CONTENEDOR_LOCAL rm -rf /tmp/respaldoDB