Skip to content

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”

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”
Terminal window
gcloud compute ssh NOMBRE_DE_LA_VM --zone=ZONA
Terminal window
docker ps

1.3 Ejecutar mongodump dentro del contenedor

Section titled “1.3 Ejecutar mongodump dentro del contenedor”
Terminal window
docker exec -it NOMBRE_DEL_CONTENEDOR mongodump --out /respaldoDB
Terminal window
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”
Terminal window
docker cp NOMBRE_DEL_CONTENEDOR:/respaldoDB ~/respaldoDB

Verificar:

Terminal window
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:

Terminal window
gcloud compute scp --recurse \
NOMBRE_DE_LA_VM:/home/USUARIO_VM/respaldoDB \
./respaldoDB_local \
--zone=ZONA
``
Verificar en Windows:
```bash
./respaldoDB_local

4. Restaurar el respaldo en el contenedor MongoDB local

Section titled “4. Restaurar el respaldo en el contenedor MongoDB local”
Terminal window
docker ps

4.2 Copiar el respaldo desde Windows hacia el contenedor

Section titled “4.2 Copiar el respaldo desde Windows hacia el contenedor”
Terminal window
docker cp ./respaldoDB_local NOMBRE_CONTENEDOR_LOCAL:/tmp/respaldoDB

4.3 Ejecutar mongorestore dentro del contenedor

Section titled “4.3 Ejecutar mongorestore dentro del contenedor”
Terminal window
docker exec -it NOMBRE_CONTENEDOR_LOCAL \
mongorestore /tmp/respaldoDB

Si requiere autenticación:

Terminal window
docker exec -it NOMBRE_CONTENEDOR_LOCAL \
mongorestore --uri="mongodb://usuario:password@localhost:27017" \
/tmp/respaldoDB
Terminal window
docker exec -it NOMBRE_CONTENEDOR_LOCAL rm -rf /tmp/respaldoDB