Montare cartelle (o file system) significa collegare o connettere un file system (cartella o directory) a una posizione specifica di un altro file system. Ciò consente di rendere accessibile il contenuto di una cartella all'interno di un'altra cartella o addirittura in un'altra posizione del sistema.
Che cosa significa montare?
Il montaggio delle cartelle è una funzione importante dei sistemi operativi e viene spesso utilizzata nel contesto della containerizzazione come Docker o della virtualizzazione per consentire l'accesso a file e dati tra la macchina host e i container o le macchine virtuali.
L'idea di base del montaggio delle cartelle consiste nel dividere un'area di archiviazione fisica (come un disco o un file system) in diverse aree logiche per organizzare e accedere ai file. Ciò consente di controllare e modificare il contenuto di un file system senza influenzare altri file system o directory.
Il montaggio delle cartelle è spesso utilizzato per scambiare dati tra la macchina host e i container, aggiornare il codice durante lo sviluppo di un'applicazione, memorizzare database o personalizzare i file di configurazione.
Perché è necessario montare le cartelle?
Il montaggio delle cartelle in Docker Compose consente di scambiare dati tra la macchina host e i container, offrendo diversi vantaggi e opportunità:
- Persistenza dei dati: utilizzando il montaggio delle cartelle, è possibile persistere i dati creati o modificati all'interno dei container sulla macchina host. Questo è importante per preservare i dati persistenti, come database o file system, che possono essere ripristinati dopo il riavvio dei container.
- Aggiornamenti del codice: se state sviluppando un'applicazione e volete vedere immediatamente le modifiche al codice senza dover ricostruire l'immagine e riavviare il contenitore, il montaggio delle cartelle è un ottimo modo per farlo. È possibile montare la cartella del codice sorgente sulla macchina host all'interno del contenitore e quando i file di codice cambiano sull'host, vengono automaticamente visualizzati all'interno del contenitore senza doverlo riavviare.
- Dividere le configurazioni: si può anche usare il montaggio delle cartelle per dividere i file di configurazione tra la macchina host e i container.
Come montare.
In Docker Compose, è possibile montare le cartelle della macchina host nei contenitori usando l'opzione `volumi`. Ecco un esempio di utilizzo dei volumi nel file docker-compose.yml:
yaml
version: '3'
services:
app:
image: nginx
volumes:
- /path_to_host_folder:/path_to_folder_volume
Nell'esempio precedente,"/path_to_host_folder" è il percorso della cartella sul computer host che si vuole montare in un contenitore. `/path_to_folder_volume` è il percorso della cartella all'interno del contenitore in cui si vuole montare la cartella host.
È anche possibile usare percorsi relativi invece di percorsi assoluti, specificando il percorso relativo alla posizione del file `docker-compose.yml`. In questo caso, usare `./` per specificare la directory corrente.
yaml
version: '3'
services:
app:
image: nginx
volumes:
- ./host's_folder:/path_to_folder_volume
È anche possibile specificare più cartelle montate, semplicemente aggiungendole all'elenco `volumi`.
yaml
version: '3'
services:
app:
image: nginx
volumes: