CodeGym /Corsi /Docker SELF /Utilizzo dei bind

Utilizzo dei bind

Docker SELF
Livello 19 , Lezione 4
Disponibile

5.1 L'idea dei direttori vincolati (bind mounts)

Montare le directory del host nei container utilizzando i direttori vincolati (bind mounts) è una feature molto potente di Docker, che permette ai container di utilizzare direttamente i file e le directory che si trovano sul sistema host. È particolarmente utile durante lo sviluppo, il testing e la configurazione, quando è necessario utilizzare file locali senza copiarli nel container. In questa lezione vedremo come utilizzare i bind mounts, faremo esempi e discuteremo le migliori pratiche.

I bind mounts permettono di montare specifiche directory o file dal sistema host nei container. Questo è diverso dai volumi, che sono gestiti da Docker e memorizzati in una directory speciale.

Vantaggi dell'uso dei bind mounts

  1. Accesso diretto ai file dell'host: I container possono utilizzare e modificare direttamente i file presenti sull'host.
  2. Comodità nello sviluppo: Gli sviluppatori possono modificare i file sull'host e vedere queste modifiche nei container in tempo reale.
  3. Flessibilità: Qualsiasi directory sull'host può essere montata nel container.

Comando per montare i bind mounts

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

5.2 Esempi di utilizzo del parametro -v

1. Montare una directory dell'host nel container

Un semplice esempio di come montare una directory dell'host nel container:

Terminale

docker run -d --name my_container -v /path/on/host:/path/in/container nginx

In questo esempio, la directory /path/on/host sull'host viene montata nella directory /path/in/container all'interno del container nginx.

2. Montare un file dell'host nel container

Puoi anche montare file specifici:

Terminale

docker run -d --name my_container -v /path/on/host/config.conf:/etc/nginx/nginx.conf nginx

In questo esempio, il file di configurazione config.conf sull'host viene montato come file di configurazione nginx.conf all'interno del container.

5.3 Esempi di utilizzo del parametro --mount

Il parametro --mount fornisce un modo più dettagliato per montare le directory bind con la possibilità di specificare vari parametri.

1. Montaggio della directory utilizzando --mount

Terminal

docker run -d --name my_container --mount type=bind,source=/path/on/host,target=/path/in/container nginx

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

2. Montaggio in modalità sola lettura

Terminal

docker run -d --name my_container --mount 
type=bind,source=/path/on/host,target=/path/in/container,readonly nginx

In questo esempio la directory viene montata in modalità sola lettura, impedendo modifiche ai file nel container.

5.4 Esempi pratici

Per sviluppare un'applicazione web, puoi montare una directory con il codice sorgente sull'host dentro il container.

Creazione di una directory con il codice sorgente sull'host:

Terminale

mkdir -p ~/my_web_app
echo "Ciao, Mondo!" > ~/my_web_app/index.html

Avvio del container con montaggio della directory:

Terminale

docker run -d --name web_dev -v ~/my_web_app:/usr/share/nginx/html nginx

Ora qualsiasi modifica nella directory ~/my_web_app sull'host sarà immediatamente riflessa nel container.

Esempio 2: Uso dei file di configurazione

Puoi montare file di configurazione da una directory sull'host dentro il container.

Creazione di un file di configurazione sull'host:

Terminale

echo "user www-data;" > ~/nginx.conf

echo "worker_processes auto;" >> ~/nginx.conf

Avvio del container con montaggio del file di configurazione:

Terminale

docker run -d --name nginx_custom -v ~/nginx.conf:/etc/nginx/nginx.conf nginx

In questo esempio, il file di configurazione di Nginx sull'host viene utilizzato all'interno del container.

5.5 Verifica delle directory e file montati

Puoi verificare il contenuto delle directory e dei file montati utilizzando il comando docker exec per eseguire comandi all'interno del container.

Esempio

Verifica del contenuto di una directory:

Terminal

docker exec -it my_container ls /path/in/container

Verifica del contenuto di un file:

Terminal

docker exec -it my_container cat /path/in/container/config.conf

Eliminazione delle directory bindate

Le directory bindate non sono gestite direttamente da Docker, quindi la loro eliminazione avviene a livello di file system dell'host.

Esempio

Eliminazione di una directory bindata sull'host:

Terminal

rm -r /path/on/host
1
Опрос
Gestione dei dati in Docker,  19 уровень,  4 лекция
недоступен
Gestione dei dati in Docker
Gestione dei dati in Docker
Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION