GNU/Linux >> Linux Esercitazione >  >> Panels >> Docker

Come creare volumi Docker su Windows in modo semplice

I volumi Docker sono il modo preferito per gestire i dati persistenti creati e utilizzati dai contenitori Docker. Diamo un'occhiata a come funziona spiegando come creare volumi Docker su Windows. Imparerai anche a gestirli!

Questo post del blog contiene un video di accompagnamento creato dal collaboratore di TechSnips, Matt McElreath. Sentiti libero di avere un orologio o, se preferisci il testo, continua a leggere!

Memorizzazione di dati persistenti

Se desideri archiviare dati persistenti per i contenitori, sono disponibili un paio di opzioni. Per prima cosa, ti mostrerò come utilizzare un bind mount . Attualmente mi trovo in una cartella chiamata data sul mio C:\ . Se elenco il contenuto di questa cartella, puoi vedere che ho cinque file di testo.

Se voglio rendere questa cartella disponibile per un container, posso montarla all'avvio del container.

Andiamo avanti ed eseguiamo un container usando docker run . Eseguirò questo contenitore in modalità interattiva, quindi specificherò -V . Qui, inserirò il percorso della mia cartella dati, seguito da due punti, quindi specificherò il percorso all'interno del contenitore in cui vorrei che questa cartella fosse montata.

Per questo, specificherò il C:\shareddata cartella. Quindi specificherò l'immagine principale del server Windows e, infine, specificherò che voglio eseguire PowerShell una volta che sarò all'interno del contenitore.

docker run -it -v c:\Data:c:\shareddata microsoft/windowsservercore powershell

Ora che sono all'interno del nuovo contenitore, se elenco il contenuto di C:\ , puoi vedere che ho un shareddata cartella.

Andiamo in quella cartella ed elenchiamo il contenuto. Ecco i miei cinque file di prova che si trovano sul mio host contenitore.

Posso anche creare file in questa cartella, che saranno disponibili per altri contenitori o per il mio host contenitore. Andiamo avanti ed eseguiamo un nuovo elemento per creare un file chiamato containertest .

Possiamo vedere sopra che il nuovo file è stato creato dall'interno del contenitore. Ora uscirò da questo contenitore che lo spegnerà eseguendo exit .

Se eseguo docker ps , puoi vedere che al momento non ci sono container in esecuzione.

Enumerazione dei dati nei volumi Docker

Ora elenchiamo di nuovo il contenuto della cartella dati dal mio host contenitore.

Possiamo vedere il nuovo file che è stato creato dall'interno del contenitore chiamato containertest . I binding mount hanno alcune funzionalità limitate, tuttavia, quindi i volumi sono il modo migliore per realizzare ciò che stiamo cercando di fare. Per iniziare con i volumi, possiamo eseguire lo stesso comando per avviare un container, ma questa volta con un paio di piccole differenze. Laddove abbiamo specificato il volume, invece di utilizzare il percorso sul file system degli host del contenitore, userò la parola hostdata come nome di un volume che voglio creare e utilizzare.

Dall'interno del nuovo contenitore, se elenco il contenuto di C:\ , puoi vedere di nuovo che ho una cartella chiamata shareddata .

Se elenco il contenuto di quella cartella, è attualmente vuota perché abbiamo creato un volume vuoto. Ora eseguiamo Ctrl-P-Q che ci porterà fuori dal contenitore in esecuzione, ma lo manterrà in esecuzione in background.

Dall'host del contenitore, esegui docker volume ls . Questo elencherà i volumi correnti su questo host contenitore. Ho un volume chiamato hostdata , che è stato creato quando l'ho specificato in docker run comando.

Se eseguo docker ps possiamo vedere il nostro container in esecuzione.

Arresta quel contenitore usando docker stop . Ora non abbiamo container in esecuzione.

Rimuovere i contenitori interrotti eseguendo docker rm . Se elenco di nuovo i volumi, puoi vedere che i hostdata il volume è ancora disponibile e può essere montato su nuovi contenitori.

Creazione di volumi Docker

Un altro modo per creare un volume consiste nell'usare docker volume create comando. Se non specifichi un nome, Docker gli assegnerà un nome che è un lungo elenco di caratteri casuali. Altrimenti, puoi specificare un nome qui. Chiamerò questo volume logdata . Ora possiamo vedere che è nell'elenco quando elenchiamo di nuovo i volumi.

Ora lo monterai su un nuovo contenitore. Usa docker run di nuovo e per il volume specificare il volume appena creato e montarlo su c:\logdata .

> docker run -it -v logdata:c:\logdata microsoft/windowsservercore powershell

Dall'interno del contenitore, accedi ai logdata cartella e creare un paio di file. Al momento, non ci sono file in questa directory, quindi vai avanti e creane alcuni.

PS> New-Item -Name Log1.txt -ItemType File
PS> New-Item -Name Log2.txt -ItemType File

Ora ho due file di registro in questa directory.

Esegui Ctrl-P-Q di nuovo per uscire da questo contenitore mentre è ancora in esecuzione. Mentre il container è in esecuzione, avvia un nuovo container con lo stesso volume montato.

> docker run -it -v logdata:c:\logdata microsoft/windowsservercore powershell

Se eseguiamo un elenco su logdata cartella nel nuovo contenitore possiamo vedere i due file di registro condivisi.

Ora esci da questo contenitore. Dovresti ancora avere un container in esecuzione e due container usciti.

Ora interrompi tutti i contenitori in esecuzione, quindi esegui docker rm per rimuovere tutti i contenitori usciti.

Elenca di nuovo i volumi. I dati di registro il volume è ancora disponibile per essere montato su contenitori futuri.

Se esegui, esegui docker volume , riceverai un aiuto per l'utilizzo del comando.

Ispezione dei volumi Docker

Abbiamo già esaminato create , quindi passiamo a inspect . Se eseguo docker volume inspect contro i logdata volume, restituirà le proprietà per quel volume, incluso il punto di montaggio che è il percorso fisico del volume sull'host del contenitore.

Apriamo quella cartella usando Invoke-Item e dai un'occhiata. Sotto i logdata cartella, c'è una cartella chiamata dati . Se lo apriamo, possiamo vedere i file che sono stati creati dal contenitore in precedenza.

Eliminazione dei volumi Docker

Per eliminare un volume, possiamo eseguire docker volume rm , seguito dal nome del volume che desideri eliminare.

> docker volume rm logdata

Ora, se elenco i volumi, logdata non c'è più.

Infine, possiamo usare prune per rimuovere tutti i volumi locali non utilizzati. Questo eliminerà tutti i volumi che non sono montati su un contenitore in esecuzione o arrestato.

Vuoi stare attento con questo comando, quindi c'è un avviso e un prompt per assicurarti di essere sicuro di volerlo fare. Se digito Y e premi invio, mi mostrerà quali volumi sono stati eliminati.

E se elenco di nuovo i miei volumi puoi vedere che sono stati tutti cancellati.

Riepilogo

In questo post del blog, dovresti avere una buona panoramica della gestione dei volumi Docker in Windows. Docker è un'ottima piattaforma per container. Con il suo supporto per Windows e le tue nuove abilità nella gestione dei volumi Docker, sarai inarrestabile!


Docker
  1. Come eseguire MySQL in Docker Container:una guida semplice e facile da seguire

  2. Come SSH in un contenitore Docker

  3. Come creare un contenitore Docker MySQL per i test

  4. Come creare un'immagine Docker da un contenitore e un file Docker

  5. Come modificare il fuso orario per un container Docker

Come ottenere l'indirizzo IP di un contenitore Docker dall'host

Come verificare se il demone Docker o un container è in esecuzione

Come eseguire PHPMyAdmin in un contenitore Docker

Come creare un'immagine Docker da un contenitore in esecuzione

Come creare un contenitore dell'applicazione Django Docker

Come creare un'immagine di Windows Docker con il tag di build Docker