🚀 Nuova versione beta disponibile! Feedback o problemi? Contattaci

Esportare e Importare Container Docker: Guida Completa

Codegrind Team•Aug 28 2024

Esportare e importare container Docker è una pratica utile quando è necessario trasferire container tra diversi ambienti o creare backup per ripristinare un container in futuro. Questa guida ti mostrerà come esportare un container Docker in un file tar e come importarlo in un altro sistema, garantendo che il container venga preservato con tutte le sue configurazioni e dati.

1. Differenza tra Esportazione di un Container e un’Immagine Docker

Prima di procedere, è importante capire la differenza tra esportare un container e un’immagine Docker:

  • Esportazione di un Container: Quando esporti un container, stai salvando lo stato corrente del container, inclusi i file, le directory e le configurazioni attive. Questo è utile se vuoi trasferire un container in esecuzione in un altro sistema con lo stesso stato.
  • Salvataggio di un’Immagine Docker: Salvare un’immagine Docker (docker save) salva l’immagine di base che può essere utilizzata per creare nuovi container. Questa è più statica e non include lo stato attuale di un container in esecuzione.

2. Esportare un Container Docker

Esportare un Container in un File Tar

Per esportare un container Docker in un file tar, utilizza il comando docker export. Questo comando crea un archivio tar del filesystem del container.

Esempio di Esportazione

Supponiamo di voler esportare un container chiamato my_container:

docker export -o my_container_backup.tar my_container
  • -o my_container_backup.tar: Specifica il nome del file di output. In questo caso, stiamo creando un file chiamato my_container_backup.tar.
  • my_container: È il nome o l’ID del container che vuoi esportare.

Questo comando creerà un file tar contenente tutto il filesystem del container, che può essere trasferito e importato in un altro sistema.

Verificare l’Esportazione

Puoi verificare che il file tar sia stato creato correttamente utilizzando il comando ls:

ls -lh my_container_backup.tar

Questo comando mostrerà la dimensione e i dettagli del file tar appena creato.

3. Importare un Container Docker

Una volta esportato un container, puoi importarlo in un altro sistema Docker. Questo è utile per migrare container tra ambienti o ripristinarli da un backup.

Importare un Container da un File Tar

Per importare un container Docker da un file tar, utilizza il comando docker import.

Esempio di Importazione

Supponiamo di voler importare il container precedentemente esportato (my_container_backup.tar):

cat my_container_backup.tar | docker import - my_new_container
  • cat my_container_backup.tar: Legge il file tar.
  • docker import - my_new_container: Importa il file tar come una nuova immagine Docker chiamata my_new_container.

Verificare l’Importazione

Dopo l’importazione, puoi verificare che l’immagine sia stata creata correttamente utilizzando il comando docker images:

docker images

Questo comando elencherà tutte le immagini Docker disponibili, inclusa quella appena importata (my_new_container).

Eseguire un Container dall’Immagine Importata

Una volta importata l’immagine, puoi eseguire un nuovo container basato su di essa:

docker run -d --name new_container_instance my_new_container
  • -d: Esegue il container in modalità detach (in background).
  • –name new_container_instance: Specifica un nome per il nuovo container.
  • my_new_container: È l’immagine Docker importata da cui viene creato il nuovo container.

4. Best Practices per Esportare e Importare Container Docker

Versionamento dei Backup

Quando esporti container per backup, è una buona pratica includere un timestamp o una versione nel nome del file tar per gestire facilmente diverse versioni del backup.

docker export -o my_container_backup_2024_08_28.tar my_container

Compressione dei File Tar

Per risparmiare spazio su disco, considera di comprimere il file tar dopo l’esportazione:

docker export my_container | gzip > my_container_backup.tar.gz

Utilizzare docker save e docker load per Immagini

Se il tuo obiettivo è trasferire o eseguire il backup di un’immagine Docker, utilizza docker save e docker load:

  • Salvare un’Immagine Docker:

    docker save -o my_image_backup.tar my_image
    
  • Caricare un’Immagine Docker:

    docker load -i my_image_backup.tar
    

Questo metodo è più adatto se non hai bisogno dello stato corrente del container e ti basta un’immagine di base da cui creare nuovi container.

Pulizia dei Container e delle Immagini

Dopo aver importato ed eseguito nuovi container, considera di pulire i container e le immagini non utilizzati per liberare spazio su disco:

docker system prune -a

Questo comando rimuove tutti i container, le immagini, le reti e i volumi inutilizzati, mantenendo il sistema Docker pulito e ottimizzato.

5. Conclusione

Esportare e importare container Docker è una tecnica essenziale per migrare container tra diversi ambienti, creare backup e ripristinare servizi. Utilizzando i comandi docker export e docker import, puoi garantire che il tuo ambiente containerizzato sia portabile e facilmente recuperabile in caso di necessità. Seguendo le best practices per il versionamento, la compressione e la gestione delle risorse, potrai mantenere un flusso di lavoro Docker efficiente e sicuro.