GNU/Linux >> Linux Esercitazione >  >> Panels >> Docker

Spiegazione dei volumi Docker con esempi

Nel caso di Docker , i dati saranno conservati all'interno del contenitore. E quando rimuoviamo il contenitore, i dati andranno persi. In questa guida impareremo come creare volumi docker, come collegarlo ai contenitori e come condividere lo stesso volume su due o più contenitori per l'archiviazione dei dati.

Se non conosci ancora le basi della finestra mobile, fai riferimento alla seguente guida:

  • Guida introduttiva a Docker

Perché abbiamo bisogno di volumi per Docker?

  • Eliminando i contenitori, i volumi non verranno eliminati.
  • Attacca o stacca il volume ai contenitori.
  • Condividi volumi (archiviazione/dati) tra contenitori diversi.
  • Disaccoppiare i contenitori dallo stoccaggio.
  • Memorizza volume su host o cloud remoto.

Possiamo avere una divisione logica dei dati così come il contenitore. Possiamo preservare i dati in un modo che se li rimuoviamo
il contenitore quindi saranno presenti anche i nostri dati. Quindi, dopo aver distrutto il contenitore, possiamo allegare il volume a tutti i contenitori esistenti e a un nuovo contenitore.

Guida introduttiva ai volumi Docker

Il volume della finestra mobile comando visualizzerà i dettagli dei comandi del volume con cui possiamo creare un volume, esaminare i dati dettagliati del volume, elencare i volumi disponibili e rimuovere i volumi.

# docker volume

Visualizza la sezione della guida del comando "volume docker"

Creazione di volumi Docker

La sintassi per creare un volume Docker è:

docker volume create <volume_name>

Esempio:

# docker volume create devops_volume

Il comando precedente creerà un volume della finestra mobile denominato devops_volume .

crea il volume della finestra mobile

Elenco dei volumi della finestra mobile

Per elencare tutti i volumi Docker creati, esegui:

# docker volume ls

elenca i volumi della finestra mobile

Ispezione dei volumi della finestra mobile

Il controllo del volume della finestra mobile comando ti fornirà i dettagli sulla creazione del volume, posizione, nome e ambito.

Sintassi:

docker volume inspect <volume_name>

Lascia che ti mostri i dettagli di un volume Docker denominato devops_volume .

# docker volume inspect devops_volume

ispeziona i volumi della finestra mobile

Creazione di contenitori con il volume allegato

Sintassi:

docker container create --name <container_name> -it --mount source<volume_name>,target=/<folder_Name> <image_name>

Esempio:

# docker container create --name myBusyBox1 -it --mount source=devops_volume,target=/app busybox

crea un contenitore con il volume allegato

Per verificare se il contenitore è stato creato o meno, utilizza docker ps -a comando:

Output del comando "docker ps"

Contenitori di partenza

Per avviare il container appena creato, ad esempio myBusyBox1 , esegui:

# docker container start myBusyBox1

avviare i contenitori docker

Come puoi vedere nello screenshot qui sopra, il contenitore myBusyBox1 è stato creato 8 minuti fa ed è stato avviato 6 secondi fa.

Copiare file tra contenitori da un volume condiviso

Creiamo uno scenario in cui creeremo il file in un contenitore nella posizione condivisa e proveremo ad accedere al file da un altro contenitore.

Abbiamo già creato un contenitore chiamato myBusyBox1. Creiamone un altro, ad esempio myBusyBox2 .

crea un contenitore

Ora abbiamo due contenitori in esecuzione, myBusyBox1 e myBusyBox2.

Connettiamoci al primo container e creiamo un file all'interno della /app cartella.

# docker exec -it myBusyBox1 sh

Il comando sopra ti porterà all'interno del contenitore.

Quindi, crea una nuova cartella chiamata devops all'interno della cartella /app ed esci dal primo contenitore.

connettersi al primo container

Ora copia un file, ad esempio index.html , dal sistema locale alla posizione /app/devops/ del contenitore myBusyBox1.

# docker container cp index.html myBusyBox1:/app/Devops

Ora connettiti a un altro secondo contenitore, ad esempio myBusyBox2 e verificalo all'interno di /app/devops cartella index.html il file è presente o meno.

# docker exec -it myBusyBox2 sh

connettersi al secondo contenitore

Dallo screenshot sopra viene confermato che entrambi i contenitori condividono lo stesso volume.

Possiamo controllare la posizione del punto di montaggio del volume utilizzando controllo volume Docker comando come di seguito:

# docker volume inspect devops_volume

comando docker ispeziona volume

Come puoi vedere, la posizione del punto di montaggio è /var/lib/docker/volumes/devops_volume/_data .

Andiamo alla posizione del punto di montaggio e vediamo se il file copiato è disponibile o meno.

punto di montaggio dei volumi Docker

Nella posizione di Mountpoint abbiamo trovato lo stesso file.

Elimina i volumi della finestra mobile

La sintassi per eliminare un volume è:

docker volume rm <volume_name>

Eliminiamo il volume chiamato devops_volume .

# docker volume rm devops_volume

eliminare un volume della finestra mobile

Nello screenshot sopra, stiamo cercando di eliminare il volume ma non siamo in grado di eliminarlo perché il volume è già in uso. Quindi per prima cosa dobbiamo eliminare il contenitore e liberare il volume. E poi possiamo eliminare il volume.

Per farlo, rimuovi prima tutti i contenitori in esecuzione usando il comando:

# docker rm –f $(docker ps -aq)

E poi rimuovi il volume:

# docker volume rm devops_volume

elimina i volumi della finestra mobile

Elimina tutti i volumi contemporaneamente

Utilizzo di docker rm comando, possiamo rimuovere un volume alla volta. Se disponiamo di più volumi e desideriamo eliminare tutti i volumi, dobbiamo utilizzare prune comando.

Creiamo alcuni volumi:

creare volumi Docker

Ora elimina tutti i volumi della finestra mobile contemporaneamente usando il comando:

# docker volume prune

elimina tutti i volumi della finestra mobile contemporaneamente

Vedere? Abbiamo eliminato tutti i volumi in una volta sola.

Lettura consigliata:

  • Spiegazione dei concetti di rete Docker
  • Come aggiornare automaticamente i contenitori Docker in esecuzione
  • ctop – Uno strumento di monitoraggio della riga di comando per i container Linux
  • Portainer:il modo più semplice per gestire Docker
  • PiCluster:una semplice applicazione di gestione Docker basata sul Web
  • Dockly:gestisci i container Docker dal terminale

Informazioni sull'autore:

Dhruv Tiwari è un ingegnere DevOps che ama automatizzare le cose, lavorare con Linux su larga scala e sognare il giorno in cui i sistemi saranno abbastanza intelligenti da non dover mai accedere a una macchina Linux. Viaggio di CI/CD dal codice sorgente alla distribuzione del codice alla produzione.


Docker
  1. Registri Docker:cosa sono e come usarli (con esempi)

  2. Creazione di volumi logici in Linux con LVM

  3. Come installare Jenkins con Docker

  4. Comprensione dei volumi Docker

  5. Espandi e riduci i volumi con Gestione disco

Comando Netcat (nc) con esempi

15 Comando Linux ps con esempi

Spiegazione dei concetti di rete Docker

Migliora il tuo gioco DevOps con questi esempi di esecuzione Docker

Come eseguire Jenkins in Docker usando Docker Compose con volumi

20 utili esempi di comandi del volume Docker per gli sviluppatori moderni