Torna al blog

Come condividere dati tra un container Docker e un host

Come condividere dati tra un container Docker e un host

Introduzione

In genere, i container Docker vengono eseguiti solo per un certo periodo di tempo – il tempo necessario per eseguire il comando. I dati disponibili all'interno del container sono accessibili solo dall'interno del container durante il runtime.

I volumi Docker possono essere utilizzati per accedere facilmente ai file e memorizzarli per un periodo più lungo. Ad esempio, se hai un server web Nginx e desideri memorizzare i log per i controlli, puoi utilizzare un volume Docker per memorizzare i log del container nella tua macchina host.

In questo tutorial, imparerai come condividere i dati tra l'interno del container Docker e la macchina host. 

Prerequisiti

Per questo tutorial, avrai bisogno dei seguenti prerequisiti:

Passo 1 – Eseguire il Bind Mount di un volume

Puoi creare una directory chiamata logs nella home directory del tuo utente corrente ed eseguirne il bind-mount su /var/log/nginx nel container Nginx usando il seguente comando:

Ecco informazioni più dettagliate su questo comando:

  • --name=nginx assegna un nome al container per un facile riferimento.
  • -d l'argomento scollega il processo e lo esegue in background.
  • -v hostPath:containerPath mappa il percorso dell'host e il percorso del container per eseguire il bind mount.
  • -p hostPort:containerPort l'argomento mappa la porta del container sulla porta dell'host.
  • nginx alla fine della riga è il nome dell'immagine che dovrebbe essere utilizzata per avviare il container.
Nota: Usa sempre / o ~/ per iniziare l'hostPath, altrimenti l'argomento -v considera il percorso come il nome del volume e non esegue il bind mount.

Passo 2 – Accesso ai dati sull'host

Ora hai un container Nginx in esecuzione sul tuo server e la porta 5000 del tuo server è mappata sulla porta 80 di Nginx. Puoi aprire la porta nel browser web con il seguente URL:

nginx homepage

Nella directory ~/logs, vedrai i file access.log e error.log. Puoi visualizzare i log utilizzando il comando cat:

Puoi anche controllare la directory dei log ~/logs sulla tua macchina host e trovare il file dei log di Nginx. Inoltre, se apporti modifiche nella cartella logs, queste si rifletteranno anche nella cartella /var/log/nginx del container.

Conclusione

In questo tutorial, hai imparato come condividere i dati tra l'interno del container Docker e la macchina host. Questo è essenziale negli ambienti di sviluppo in cui l'analisi dei log è fondamentale per il debug.

Per ulteriori risorse su Docker sul nostro blog, puoi consultare i seguenti articoli:

Buon computing!

author

Akshay Nagpal

Autore · CloudSigma

Preslav Dobrev è un designer creativo presso CloudSigma, con un focus su un'identità aziendale coerente attraverso l'uso di canali di marketing tradizionali e innovativi. È abile nel fondere la visione artistica con il marketing strategico per creare narrazioni di brand di grande impatto.

Commenti

Ancora nessun commento. Scrivi il primo.