Tengo una base de datos de mongo ejecutándose en la nube de Mongo Atlas. Hasta el momento me ha salido gratis porque tiene poca lectura y escritura, pero recientemente tuve problemas para entrar a mi cuenta, por lo que me preocupé por mi información. Se me ocurrió hacer un respaldo pero no podía conectarme desde mi equipo ya que tengo que agregar mi ip para que se pueda conectar, y al no poder entrar a mi cuenta no podía hacer el cambio. Mi servidor seguía conectado a la DB así que hice el respaldo desde ahí.
Tengo Docker instalado, creé un contenedor de mongo temporal:
docker run --name mongo -d mongo
Entré a la terminal bash del contenedor y me situé en la carpeta home
:
#[host]
docker exec -it mongo sh
#[contenedor]
cd /home
Ahí dentro pude ejecutar la utilería mongodump
pero conectándome a la db remota de Atlas:
mongodump --uri="mongodb+srv://usuario@instanciamongo.mongodb.net/dbmongo"
Me generó una carpeta dump
, salí del contenedor y en el host ejecuté un comando para copiar la carpeta dump
del contenedor al host:
docker cp mongo:/home/dump ~/dump
Listo, ya tengo una copia de mi base de datos en mi servidor por si pierdo el acceso a la db Atlas. Solo resta detener y limpiar el contenedor temporal.
docker stop mongo
docker rm mongo