Come effettuare il dump di un database MongoDB in Docker

Come effettuare il dump di un database MongoDB in Docker

Effettuare un dump di un database MongoDB che gira all'interno di un container Docker è una pratica comune per il backup o la migrazione dei dati. In questa guida vedremo i passaggi fondamentali per eseguire correttamente un dump del database utilizzando mongodump.

Prerequisiti

  • Docker installato sulla macchina
  • Un container MongoDB in esecuzione
  • Accesso alla shell del container o possibilità di usare docker exec

1. Identificare il nome del container

Prima di tutto, individua il nome o l'ID del container MongoDB:

docker ps

Cerca la riga con l'immagine MongoDB (es. mongo) e annota il nome del container, ad esempio mongodb-container.

2. Eseguire il dump usando mongodump

Utilizza il comando mongodump all'interno del container per creare un backup del database:

docker exec -it mongodb-container mongodump --out /data/dump

Questo comando crea un dump di tutti i database nella directory /data/dump all'interno del container.

3. Copiare il dump all’esterno del container

Una volta creato il dump, puoi copiarlo dalla directory interna del container al tuo host:

docker cp mongodb-container:/data/dump ./dump

Questo salverà i dati nella directory ./dump sul tuo sistema locale.

4. Dump di un database specifico

Se vuoi effettuare il dump di un singolo database, puoi usare l'opzione --db:

docker exec -it mongodb-container mongodump --db nome_database --out /data/dump

5. Opzionale: autenticazione

Se il tuo MongoDB richiede autenticazione, puoi specificare utente, password e database di autenticazione:

docker exec -it mongodb-container mongodump \
  --db nome_database \
  --username tuo_utente \
  --password tua_password \
  --authenticationDatabase admin \
  --out /data/dump

6. Esempio di struttura del dump

Il risultato sarà una struttura di cartelle simile alla seguente:

dump/
└── nome_database
    ├── collection1.bson
    ├── collection1.metadata.json
    ├── collection2.bson
    └── collection2.metadata.json

Conclusione

Utilizzare mongodump in combinazione con Docker è un modo semplice e veloce per eseguire backup di database MongoDB. Ricordati di eseguire regolarmente il dump dei dati, specialmente in ambienti di produzione.