Docker

Volumi Docker, montaggio e altro

Volumi Docker, montaggio e altro
In Docker, ogni volta che crei un contenitore, c'è un luogo specifico in cui verranno archiviati i dati per il contenitore. Se non fornisci alcuna posizione in cui archiviare tali dati, verranno archiviati nel contenitore. Quando elimini il contenitore, anche i dati andranno persi. Tuttavia, quando si lavora su progetti aziendali, per prevenire la perdita di dati, è possibile rimuovere un contenitore ma mantenere i dati. Puoi utilizzare questi dati per creare più contenitori e condividere i dati tra questi contenitori. È qui che entra in gioco il volume di Docker.

Funzionalità dei volumi Docker

In questo tutorial spiegheremo cos'è un volume Docker e come usarlo, oltre a come montare un volume in Docker.

Requisiti

Sintassi di base del volume Docker

Puoi utilizzare il comando "volume mobile" per vedere tutte le opzioni disponibili con il volume:

volume mobile

Dovresti vedere il seguente output dopo aver inserito il comando precedente:

Utilizzo: volume docker COMANDO
Gestire i volumi
Comandi:
crea Crea un volume
ispeziona Visualizza informazioni dettagliate su uno o più volumi
ls Elenco volumi volume
prune Rimuovi tutti i volumi locali inutilizzati
rm Rimuovere uno o più volumi
Esegui 'docker volume COMMAND --help' per maggiori informazioni su un comando.

Crea un volume

Per creare un volume di dati, devi prima creare un volume di dati sull'host Docker e collegare il volume al contenitore.

Puoi creare un volume Docker usando il comando "docker volume create.” Ad esempio, utilizzare il comando seguente per creare un nuovo volume Docker denominato myvolume:

docker volume crea miovolume

Dovresti vedere il seguente output:

miovolume

Puoi elencare il tuo volume esistente usando il seguente comando:

volume mobile ls

Dovresti vedere il seguente output:

NOME DEL VOLUME DEL CONDUCENTE
locale c2d2815ba1a75fbfe5d0a4b69d94269e55ccbc138c7d2e19504e501f1dbe634f
locale miovolume

Se vuoi vedere più informazioni sul volume, esegui il seguente comando:

docker ispeziona il mio volume

Dovresti ottenere il seguente output dopo aver eseguito il comando precedente:

[

"CreatedAt": "2020-09-12T04:51:31Z",
"Autista": "locale",
"Etichette": ,
"Mountpoint": "/var/lib/docker/volumes/myvolume/_data",
"Nome": "miovolume",
"Opzioni": ,
"Ambito": "locale"

]

Montare un volume

A questo punto, hai un volume chiamato myvolume. In questo esempio, creerai un contenitore e monterai un miovolume sul contenitore.

Puoi usare l'opzione -mount per montare il volume. La sintassi di base per montare il volume sul contenitore è mostrata di seguito:

docker run --mount source=nome-volume,destinazione=percorso-all'interno-contenitore-immagini-docker

Ad esempio, per creare un contenitore Ubuntu e montare il miovolume sul contenitore, eseguire il comando seguente:

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

Questo comando estrarrà l'immagine Ubuntu dall'hub Docker, avvierà il contenitore in modalità interattiva con il nome volumecontainer e monterà il contenitore myvolume su /data all'interno della directory /data:

Impossibile trovare l'immagine 'ubuntu:latest' localmente
più recente: estrazione da libreria/ubuntu
54ee1f796a1e: Pull completo
f7bfea53ad12: Pull completato
46d371e02073: Estrazione completata
b66c17bbf772: Pull completo
Riassunto: sha256:31dfb10d52ce76c5ca0aa19d10b3e6424b830729e32a89a7c6eee2cda2be67a5
Stato: scaricata un'immagine più recente per ubuntu:latest
radice@06a477c4e444:/#

Puoi controllare il volume montato con il seguente comando:

[e-mail protetta]:/# ls

Dovresti vedere la directory dei dati nel seguente output:

bin boot data dev etc home lib lib32 lib64 libx32 media mnt
opt proc root esegui sbin srv sys tmp usr var

Ora creeremo un file di esempio chiamato file.txt all'interno della directory /data con il seguente comando:

echo "Questo è un file di prova!" > /dati/file.TXT

Uscire dal contenitore con il seguente comando:

Uscita

Avvia di nuovo lo stesso contenitore con il seguente comando:

volume di avvio del contenitore dockercontenitore

Quindi, collega il contenitore in esecuzione con il seguente comando:

docker exec -it volumecontainer /bin/bash

Controlla se il tuo file.txt è persistente con quanto segue:

dati/file gatto cat.TXT

Dovresti ottenere il seguente output dopo aver inserito il comando precedente:

Questo è un file di prova!

Condividi dati tra contenitori

Puoi anche condividere i dati tra più contenitori utilizzando il volume Docker.

Come sai, abbiamo creato un volume denominato myvolume un nuovo contenitore denominato volumecontainer utilizzando questo volume. Abbiamo anche creato un file chiamato file.txt all'interno del volume.

Ora creeremo un altro contenitore chiamato volumecontainer1 con lo stesso volume myvolume usando il seguente comando:

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

Esegui il comando ls, come mostrato di seguito:

ls

Dovresti vedere la directory dei dati nel seguente output:

bin boot data dev etc home lib lib32 lib64 libx32
media mnt opt ​​proc root run sbin srv sys tmp usr var

Esegui il seguente comando per controllare il file.TXT:

gatto /dati/file.TXT

Dovresti vedere lo stesso contenuto che hai creato nel contenitore precedente:

Questo è un file di prova!

Monta directory come volume

Puoi utilizzare la directory situata all'interno del tuo sistema host Docker come volume e montarla sul contenitore. Puoi anche usare l'opzione -v per ottenere lo stesso risultato, come mostrato di seguito:

docker run -v "directory_name":volume_name docker_image

Crea una directory denominata /data all'interno dell'host Docker con il seguente comando:

mkdir /Dati

Quindi, crea alcuni file all'interno della directory /Data:

cd /Dati
tocca file1.txt file2.file di testo3.TXT

Crea un nuovo contenitore utilizzando la directory /Data come volume con il seguente comando:

docker run -it --name=data1 -v /Data:/Data ubuntu

Questo comando creerà un nuovo contenitore e monterà il volume con il nome /Data.

Eseguire il comando seguente per verificare il contenuto della directory /Data:

ls -l /Dati/

Dovresti vedere tutti i file che abbiamo precedentemente creato nel sistema host, come mostrato di seguito:

totale 0
-rw-r--r-- 1 root root 0 Sep 12 05:41 file1.TXT
-rw-r--r-- 1 radice radice 0 Sep 12 05:41 file2.TXT
-rw-r--r-- 1 radice radice 0 Sep 12 05:41 file3.TXT

Rimuovi volume Docker

Puoi facilmente eliminare o rimuovere il volume utilizzando la seguente sintassi:

docker volume rm nome-volume

Ad esempio, per rimuovere il volume denominato myvolume, eseguire il comando seguente:

docker volume rm miovolume

Dovresti ricevere il seguente errore:

Risposta di errore dal demone: remove myvolume:
il volume è in uso - [06a477c4e4444c0f815a1ec4a151a8
339bf53d5060c492af867bcaebe531dd5d, fd8d05a027a755f
1df004ccf62568b5d66989c2112115c8a652ddbc8eb960948]

Questo perché il tuo volume è utilizzato dal contenitore. Quindi, dovrai fermarti e rimuovere il contenitore prima di rimuovere il volume.

Per arrestare e rimuovere il contenitore, eseguire il comando seguente:

volume di arresto del contenitore dockervolume del contenitorecontainer1
contenitore docker volume rm contenitore volume contenitore1

Ora puoi rimuovere facilmente il volume.

Conclusione

Nella guida sopra, hai imparato cos'è il volume Docker, come crearlo e come montarlo all'interno del contenitore. Hai anche imparato a condividere i dati tra più contenitori utilizzando il volume.

Le migliori distribuzioni Linux per il gioco nel 2021
Il sistema operativo Linux ha fatto molta strada dal suo aspetto originale, semplice e basato su server. Questo sistema operativo è notevolmente migli...
Come acquisire e riprodurre in streaming la tua sessione di gioco su Linux
In passato, giocare era considerato solo un hobby, ma con il tempo l'industria dei giochi ha visto una crescita enorme in termini di tecnologia e nume...
I migliori giochi da giocare con il tracciamento delle mani
Oculus Quest ha recentemente introdotto la grande idea del tracciamento manuale senza controller. Con un numero sempre crescente di giochi e attività ...