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.

Torna su