Mentre lavorano su un progetto di sviluppo in Docker, gli sviluppatori di solito vogliono apportare modifiche al codice e vedere le modifiche riflesse immediatamente senza ricostruire il contenitore. In questa situazione, utilizzare un supporto di bind per montare la directory del codice sulla macchina host locale nel contenitore. In tal modo, le modifiche apportate sull'host si riflettono immediatamente all'interno del contenitore. Inoltre, è utile quando il contenitore viene eliminato o rifiutato poiché i dati non vengono persi.
Questo articolo illustrerà:
Cos'è il bind Docker Bind?
Un mount Docker Bind consente agli utenti di mappare un particolare file/directory sul computer host su un file/directory all'interno di un contenitore. In questo modo, gli utenti possono condividere i dati tra l'host e il contenitore, e persistere anche i dati anche dopo che il contenitore è stato arrestato o eliminato. Eventuali modifiche apportate ai file nella directory o nel file condivisa sono visibili sia dal contenitore che dal computer host.
Come il bind mount lavora in Docker?
Facciamo un esempio e vediamo come funziona Bind-Mount in Docker. Supponiamo di avere una directory vuota "Test" situato in "C: \ Docker"Su un sistema locale. Ora vogliamo accedere al "Test"Contenuto della directory nella posizione"/App"Dall'interno di un particolare contenitore. In questo esempio, esegui un contenitore dall'immagine ufficiale Docker I.e., "nginx"E utilizzare il supporto di bind per montare una directory specifica dalla macchina host nel contenitore.
Per una migliore comprensione, segui i passaggi forniti.
Passaggio 1: Bind Mount Directory dalla macchina host al contenitore
Innanzitutto, utilizza il “Docker run -d -name -v: "Comando ed esegui un contenitore. Lega la directory di montaggio dalla macchina host al contenitore:
Docker run -d --name mycont -v c:/docker/test:/app nginx: ultimo
Qui:
Questo comando ha creato un contenitore e gli ha permesso di accedere ai file dalla macchina host e semplificare la gestione della persistenza dei dati.
Passaggio 2: creare un file nella directory di origine sulla macchina host
Quindi, navigare sul percorso della directory di origine I.e., "C:/Docker/Test"Sul macchina host e crea un file di testo semplice. Ad esempio, abbiamo creato un "Demo" file:
Passaggio 3: accedere al file della macchina host all'interno del contenitore
Ora, digita il comando sotto fornito per accedere al contenuto del contenitore ed eseguire i comandi al suo interno:
Docker Exec -it MyCont Bash
In tal modo, si aprirà il guscio del contenitore.
Successivamente, elenca il contenuto del contenitore utilizzando il comando fornito:
ls
Nello screenshot sopra, tutto il contenuto del contenitore può essere visto. Scegli la directory desiderata e naviga su di essa.
Reindirizzarsi al "app"Directory:
App CD
Quindi, elenca il “app"Il contenuto della directory per verificare il file della macchina locale è disponibile in esso:
ls
Si può osservare che il "Demo.TXT"Il file è disponibile all'interno del contenitore e possiamo accedervi.
Passaggio 4: creare file all'interno del contenitore
Quindi, crea un altro file all'interno di un contenitore usando "tocco"Comando:
Tocca Nuovo.TXT
Abbiamo creato un “nuovo.TXT" file.
Quindi, verifica il file appena creato utilizzando il comando sotto l'elenco:
ls
Si può vedere che il file "nuovo.TXT"È stato creato con successo all'interno del contenitore.
Passaggio 5: verificare il file sul sistema locale
Infine, vai al percorso della macchina locale e controlla se "nuovo.TXT"Il file è disponibile o no:
Come puoi vedere, il "nuovo.TXT"Il file è disponibile sulla macchina locale e possiamo accedervi. Ciò indica che le modifiche si riflettono anche sulla macchina locale.
Passaggio 6: rimuovere il contenitore Docker
Ora rimuovi il contenitore tramite "Docker Rm"Comando insieme al nome del contenitore:
Docker RM Mycont
IL "Mycont"Il container è stato eliminato con successo.
Passaggio 7: assicurarsi che i dati persistano sulla macchina locale
Dopo aver eliminato il contenitore, verificare se i dati persistevano sulla macchina locale non:
Come puoi vedere, le modifiche sono persistite anche dopo aver eliminato il contenitore a montaggio di legami.
Conclusione
Docker Bind Mount viene utilizzato per mappare una directory o un file dal sistema host nel contenitore. Crea un collegamento tra la directory o il file specificato sull'host e il filesystem del contenitore. Rende facile e semplice trattare o funzionare con file che sono archiviati al di fuori del contenitore. Eventuali modifiche apportate ai file nella directory o nel file condivisa verranno riflesse sia nell'host che nel contenitore. Questo articolo ha spiegato su Docker Bind Mount e il suo lavoro in Docker.