Come effettuare il dump di un database MySQL in Docker

Effettuare il dump di un database MySQL all'interno di un container Docker è una procedura comune per eseguire backup o migrazioni. Di seguito sono descritti i passaggi per realizzare questa operazione.

Prerequisiti

  • Docker installato sul sistema
  • Un container MySQL attivo
  • Accesso a un terminale con privilegi adeguati

1. Identificare il nome del container

Per prima cosa, è necessario individuare il nome o l'ID del container MySQL in esecuzione:

docker ps

Cerca una riga con mysql o mariadb nell'immagine e prendi nota del nome del container.

2. Eseguire il dump del database

Puoi eseguire il dump di un database utilizzando il comando mysqldump all'interno del container.

docker exec -i nome_container \
  mysqldump -u root -p nome_database > dump.sql

Questo comando esegue il dump del database nome_database e lo salva come file dump.sql sulla macchina host. Ti verrà chiesta la password dell'utente MySQL specificato.

3. Specificare la password direttamente (opzionale)

Per evitare l'inserimento manuale della password (non consigliato in ambienti di produzione), puoi specificarla direttamente:

docker exec -i nome_container \
  mysqldump -u root -pPASSWORD nome_database > dump.sql

Nota: non ci deve essere spazio tra -p e la password.

4. Dump di tutti i database

Per effettuare il dump di tutti i database presenti nel container:

docker exec -i nome_container \
  mysqldump -u root -pPASSWORD --all-databases > full_dump.sql

5. Dump compressi

Per risparmiare spazio, puoi comprimere direttamente il dump:

docker exec -i nome_container \
  mysqldump -u root -pPASSWORD nome_database \
  | gzip > dump.sql.gz

6. Verifica del dump

Puoi visualizzare le prime righe del file di dump per verificarne il contenuto:

head dump.sql

7. Esempio di output

-- MySQL dump 10.13  Distrib 8.0.33, for Linux (x86_64)
--
-- Host: localhost    Database: nome_database
-- ------------------------------------------------------
-- Server version	8.0.33

Conclusione

Ora sai come eseguire il dump di un database MySQL da un container Docker. Puoi utilizzare questi comandi per automatizzare i backup o trasferire dati tra ambienti.

Torna su