GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Volumi Docker:come creare e iniziare

Introduzione

I volumi Docker sono strumenti ampiamente utilizzati e utili per garantire la persistenza dei dati mentre si lavora nei container. Sono un'alternativa migliore rispetto alla compilazione di livelli scrivibili aggiuntivi, che aumentano le dimensioni dell'immagine Docker.

In questo tutorial, scopri come utilizzare i volumi Docker con esempi pratici.

Cosa sono i volumi Docker?

I volumi Docker sono file system montati su container Docker per preservare i dati generati dal container in esecuzione.

I volumi vengono archiviati nell'host, indipendentemente dal ciclo di vita del contenitore. Ciò consente agli utenti di eseguire facilmente il backup dei dati e condividere file system tra contenitori.

Guida introduttiva ai volumi Docker

Esistono diversi modi per montare un volume Docker durante l'avvio di un container. Gli utenti possono scegliere tra -v e il --mount flag, che vengono aggiunti alla docker run comando.

Questo articolo mostra esempi di entrambi i flag in uso.

Come creare un volume Docker

Per creare un volume Docker usa il comando:

docker volume create [volume_name]

Docker crea automaticamente una directory per il volume sull'host in /var/lib/docker/volume/ il percorso. Ora puoi montare questo volume su un container, garantendo la persistenza dei dati e la condivisione dei dati tra più container.

Ad esempio, per creare un volume con il nome dati , eseguiresti il ​​comando:

docker volume create data

Elenca i volumi Docker

Per verificare di aver creato correttamente un volume Docker, chiedi a Docker di elencare tutti i volumi disponibili con:

docker volume list

L'output mostra un elenco di volumi, specificando la loro posizione (DRIVER ) e il loro NOME VOLUME . Nell'immagine qui sotto, puoi vedere il volume dati creato nella sezione precedente.

Ispezione dei volumi Docker

Per visualizzare ulteriori informazioni su un volume Docker, utilizza inspect comando:

docker volume inspect [volume_name]

Elenca i dettagli di un volume, inclusa la sua posizione nel file host (Mountpoint ). Tutto ciò che è memorizzato all'interno del volume di dati può essere trovato anche nella directory elencata sotto il percorso del punto di montaggio.

Montaggio di un volume di dati

Per montare un volume di dati in un container, aggiungi il --mount segnala alla docker run comando. Aggiunge il volume al contenitore specificato, dove archivia i dati prodotti all'interno dell'ambiente virtuale.

Per eseguire un container e montarvi un volume di dati, segui la sintassi di base:

docker run --mount source=[volume_name],destination=[path_in_container] [docker_image]

Sostituisci [path_in_container] con il percorso in cui si desidera posizionare il volume di dati nel contenitore. Tutto ciò che è archiviato in quella directory viene automaticamente salvato anche sul volume di dati dell'host.

Ad esempio, per avviare un container Ubuntu e montare i dati volume su di esso, esegui:

docker run -it --name=example1 --mount source=data,destination=/data ubuntu

Il comando indica a Docker di eseguire un container in modalità interattiva (-it ) dall'immagine di Ubuntu, sotto il nome example1 , durante il montaggio dei dati del volume in /data directory all'interno del contenitore.

Quindi, verifica che il volume sia stato montato correttamente elencando il contenuto del contenitore:

ls

Trova il volume Docker con il nome definito durante l'avvio del contenitore. In questo esempio, sono dati .

Copiare file tra contenitori da un volume condiviso

Vediamo come i volumi Docker ti consentono di condividere file tra contenitori.

Per fare ciò, utilizziamo il volume e il contenitore creati nella sezione precedente. Ciò includeva l'esecuzione dei comandi:

  • docker volume create data
  • docker run -it --name=example1 --mount source=data,destination=/data ubuntu

1. Dopo essere passati al prompt dei comandi del contenitore, passare alla directory del volume di dati:

cd data

2. Crea un file di esempio vuoto utilizzando il comando touch:

touch sample1.txt

3. Ora esci dal container:

exit

4. Quindi, avvia un nuovo contenitore esempio2 con lo stesso volume di dati:

docker run -it --name=example2 --mount source=data,destination=/data ubuntu

5. Elenca il contenuto del contenitore. Dovresti trovare la directory dei dati, come in esempio1 :

ls

6. Passare alla directory dei dati ed elencarne il contenuto:

cd data
ls

L'output dovrebbe elencare il sample1.txt file che hai creato nel contenitore precedente (esempio1 ).

Montaggio di una directory host come volume di dati

Puoi anche montare una directory esistente dalla macchina host a un container. Questo tipo di volume è chiamato Volumi host .

Puoi montare i volumi host utilizzando il -v flag e specificando il nome della directory host.

Tutto all'interno della directory host è quindi disponibile nel contenitore. Inoltre, tutti i dati generati all'interno del contenitore e inseriti nel volume di dati vengono archiviati in modo sicuro nella directory host.

La sintassi di base per il montaggio di una directory host è:

docker run -v "$(pwd)":[volume_name] [docker_image]

Il "$(pwd)" l'attributo indica a Docker di montare la directory in cui si trova attualmente l'utente.

L'esempio seguente illustra come farlo.

1. Innanzitutto, crea una directory di esempio sull'host con il nome tmp ed entraci:

mkdir tmp
cd tmp

2. Una volta all'interno della directory, crea un file di prova per vedere se sarà disponibile dal contenitore:

touch file.txt

2. Quindi, utilizza la docker run comando per avviare un contenitore Ubuntu con la directory host collegata:

docker run -it -v "$(pwd)":/data1 ubuntu

Questo avvia il contenitore in modalità interattiva e monta un volume con il nome data1 .

3. Elenca il contenuto del contenitore e verifica che siano presenti dati1 directory:

ls

4. Aprire la directory montata ed elencare il contenuto. L'output dovrebbe visualizzare il file che hai creato sull'host:

cd data1
ls

Autorizzazione e proprietà del volume

Le autorizzazioni del volume possono essere modificate configurando la proprietà all'interno del Dockerfile.

Usa il RUN istruzione e il chown comando per impostare l'autorizzazione del volume Docker. Assicurati che questa istruzione preceda la riga che definisce il VOLUME .

In alternativa, puoi modificare la proprietà della directory utilizzata come volume host.

Per istruzioni su come utilizzare il chown comando, fare riferimento a Esercitazione sui permessi dei file Linux:come controllare e modificare i permessi.

Come eliminare i volumi Docker

Per eliminare un volume Docker, devi specificarne il nome.

La sintassi di base per rimuovere un volume Docker nella riga di comando è:

docker volume rm [volume_name]

Docker rimuove i volumi solo se al momento non sono in uso. Se è presente un contenitore con il volume specificato, risponde con un errore. Per procedere, ferma e rimuovi il contenitore, quindi esegui nuovamente il docker volume rm comando.

Come eliminare tutti i volumi in una volta

Per eliminare tutti i volumi Docker inutilizzati con un solo comando:

docker volume prune

L'output avverte che rimuoverà tutti i volumi locali non utilizzati da almeno un container. Premi y per continuare.


Ubuntu
  1. Come iniziare con le traduzioni?

  2. Come creare una partizione Lvm/volume fisico> 2 TB?

  3. Come iniziare con Juju?

  4. Comprensione dei volumi Docker

  5. Come ottenere il pid del processo appena avviato

Lxc e come iniziare?

Come aggiungere un volume a un contenitore Docker esistente

Docker su Windows? Inizia subito a imparare oppure...!

Come creare volumi Docker su Windows in modo semplice

Come ottenere l'indirizzo IP del contenitore Docker

Come iniziare con Arch Linux