Docker
Volumi dati Docker
Ricerca…
introduzione
I volumi di dati del Docker forniscono un modo per mantenere i dati indipendentemente dal ciclo di vita di un container. I volumi presentano una serie di funzioni utili come:
Montare una directory host all'interno del contenitore, condividendo i dati tra i contenitori usando il filesystem e preservando i dati se un container viene cancellato
Sintassi
- volume finestra mobile [OPZIONI] [COMMAND]
Montare una directory dall'host locale in un contenitore
È possibile montare una directory host su un percorso specifico nel contenitore usando l'opzione -v
o --volume
riga di comando. L'esempio seguente monterà /etc
sull'host su /mnt/etc
nel contenitore:
(on linux) docker run -v "/etc:/mnt/etc" alpine cat /mnt/etc/passwd
(on windows) docker run -v "/c/etc:/mnt/etc" alpine cat /mnt/etc/passwd
L'accesso predefinito al volume all'interno del contenitore è di lettura-scrittura. Per montare un volume di sola lettura all'interno di un contenitore, utilizzare il suffisso :ro
:
docker run -v "/etc:/mnt/etc:ro" alpine touch /mnt/etc/passwd
Creare un volume con nome
docker volume create --name="myAwesomeApp"
L'utilizzo di un volume denominato rende la gestione dei volumi molto più leggibile. È possibile creare un volume denominato utilizzando il comando specificato sopra, ma è anche possibile creare un volume denominato all'interno di un comando di docker run
utilizzando l'opzione della riga di comando -v
o --volume
:
docker run -d --name="myApp-1" -v="myAwesomeApp:/data/app" myApp:1.5.3
Si noti che la creazione di un volume denominato in questo modulo è simile al montaggio di un file / directory host come volume, tranne per il fatto che anziché un percorso valido viene specificato il nome del volume. Una volta creati, i volumi denominati possono essere condivisi con altri contenitori:
docker run -d --name="myApp-2" --volumes-from "myApp-1" myApp:1.5.3
Dopo aver eseguito il comando precedente, un nuovo contenitore è stato creato con il nome myApp-2
dal myApp:1.5.3
immagine, che condivide la myAwesomeApp
nome volume con myApp-1
. Il volume denominato myAwesomeApp
è montato su /data/app
nel contenitore myApp-2
, così come è montato su /data/app
nel contenitore myApp-1
.