CodeGym /Corsi /Docker SELF /Montaggio dei volumi nei container

Montaggio dei volumi nei container

Docker SELF
Livello 19 , Lezione 2
Disponibile

3.1 Nozioni di base sul montaggio dei volumi

Il montaggio dei volumi (volumes) nei container è una delle funzioni chiave di Docker, che permette di salvare i dati al di fuori dei container, garantendo il loro salvataggio a lungo termine e la disponibilità. I volumi possono essere utilizzati per vari scopi, tra cui il salvataggio di file di configurazione, database, log e altri dati importanti. In questa lezione vedremo come montare i volumi nei container e forniremo esempi pratici.

Nozioni di base sul montaggio dei volumi

I volumi, come abbiamo già detto, esistono indipendentemente dal ciclo di vita dei container. Sono salvati in una directory speciale sulla macchina host e possono essere collegati a qualsiasi container.

Comando per il montaggio dei volumi

I volumi vengono montati nei container utilizzando i parametri -v o --mount durante l'avvio del container.

3.2 Parametro -v

Esempi di utilizzo del parametro -v

1. Montaggio di un volume nel container

Creazione di un volume e il suo montaggio nel container:

Creazione del volume:

Terminale

docker volume create my_volume

Avvio del container con il montaggio del volume:

Terminale

docker run -d --name my_container -v my_volume:/app nginx

In questo esempio il volume my_volume viene montato nella directory /app del container my_container

2. Montaggio di più volumi

Puoi montare più volumi in un unico container:

Terminale

docker run -d --name my_container -v volume1:/app/data -v volume2:/app/logs nginx

In questo esempio il volume volume1 viene montato nella directory /app/data, mentre il volume volume2 — nella directory /app/logs.

3.3 Parametro --mount

Il parametro --mount offre un modo più dettagliato per montare i volumi, con la possibilità di specificare vari parametri.

1. Montaggio di un volume usando --mount

Terminale

docker run -d --name my_container --mount source=my_volume,target=/app nginx

Questo esempio è simile al precedente esempio con -v, ma utilizza una sintassi più dettagliata.

2. Montaggio con parametri aggiuntivi

Terminale

docker run -d --name my_container --mount source=my_volume,target=/app,readonly nginx

In questo esempio il volume è montato in modalità sola lettura (readonly).

3.4 Esempi pratici

Esempio 1: Utilizzo dei volumi per il database

Creazione e utilizzo di un volume per conservare i dati del database.

Creazione di un volume:

Terminal

docker volume create db_data

Avvio di un container di database con montaggio di un volume:

Terminal

docker run -d --name postgres -e POSTGRES_PASSWORD=mysecretpassword -v 
db_data:/var/lib/postgresql/data postgres

In questo esempio, i dati del database PostgreSQL vengono salvati nel volume db_data.

Esempio 2: Utilizzo dei volumi per file di configurazione

Creazione di un volume per conservare file di configurazione e montarlo nel container.

Creazione di un volume:

Terminal

docker volume create config_data

Copia dei file di configurazione nel volume:

Terminal

docker run --rm -v config_data:/app busybox sh -c "echo 'dati di configurazione' > /app/config.txt"

Avvio di un container utilizzando un volume per i file di configurazione:

Terminal

docker run -d --name my_app -v config_data:/app/config nginx

In questo esempio, i file di configurazione vengono conservati nel volume config_data, che viene montato nella directory /app/config del container.

Esempio 3: Log del container

Creazione di un volume per conservare i log del container e montarlo nel container.

Creazione di un volume:

Terminal

docker volume create logs_data

Avvio di un container con montaggio di un volume per i log:

Terminal

docker run -d --name my_app -v logs_data:/var/log/nginx nginx

In questo esempio, i log di Nginx vengono salvati nel volume logs_data.

3.5 Verifica del contenuto dei volumi

Puoi controllare il contenuto di un volume montandolo su un container temporaneo.

Esempio

Esecuzione di un container temporaneo con montaggio del volume:

Terminal

docker run --rm -v my_volume:/app busybox ls /app

Questo esempio mostrerà il contenuto del volume my_volume.

Eliminazione dei volumi

Eliminazione di un volume che non è più utilizzato.

Esempio

Eliminazione del volume:

Terminal

docker volume rm my_volume

Se un volume è in uso da un container, Docker mostrerà un errore. Assicurati che i container che utilizzano il volume siano fermati e rimossi.

Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION