GNU/Linux >> LINUX-Kenntnisse >  >> Panels >> Docker

So erstellen Sie Docker-Volumes unter Windows auf einfache Weise

Docker-Volumes sind die bevorzugte Methode zum Umgang mit persistenten Daten, die von Docker-Containern erstellt und verwendet werden. Schauen wir uns an, wie das funktioniert, indem wir behandeln, wie Docker-Volumes unter Windows erstellt werden. Außerdem erfahren Sie, wie Sie sie verwalten!

Dieser Blogpost enthält ein Begleitvideo, das von Matt McElreath, einem Mitarbeiter von TechSnips, erstellt wurde. Sieh es dir gerne an oder lies weiter, wenn du Text bevorzugst!

Speichern persistenter Daten

Wenn Sie persistente Daten für Container speichern möchten, gibt es mehrere Optionen. Zuerst zeige ich Ihnen, wie Sie ein bind mount verwenden . Ich befinde mich gerade in einem Ordner namens data auf meinem C:\ . Wenn ich den Inhalt dieses Ordners aufliste, können Sie sehen, dass ich fünf Textdateien habe.

Wenn ich diesen Ordner einem Container zur Verfügung stellen möchte, kann ich ihn beim Starten des Containers mounten.

Lassen Sie uns fortfahren und einen Container mit docker run ausführen . Ich werde diesen Container im interaktiven Modus ausführen und dann -V angeben . Hier gebe ich den Pfad zu meinem Datenordner ein, gefolgt von einem Doppelpunkt, und dann gebe ich den Pfad innerhalb des Containers an, in dem dieser Ordner gemountet werden soll.

Dafür gebe ich C:\shareddata an Mappe. Dann gebe ich das Kernimage des Windows-Servers an und schließlich gebe ich an, dass ich PowerShell ausführen möchte, sobald ich mich im Container befinde.

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

Jetzt, da ich mich im neuen Container befinde, liste ich den Inhalt von C:\ auf , können Sie sehen, dass ich ein shareddata habe Ordner.

Lassen Sie uns in diesen Ordner gehen und den Inhalt auflisten. Hier sind meine fünf Testdateien, die sich auf meinem Containerhost befinden.

Ich kann in diesem Ordner auch Dateien erstellen, die anderen Containern oder meinem Container-Host zur Verfügung stehen. Lassen Sie uns fortfahren und ein neues Element ausführen, um eine Datei namens containertest zu erstellen .

Wir können oben sehen, dass die neue Datei aus dem Container heraus erstellt wurde. Jetzt verlasse ich diesen Container, der ihn herunterfährt, indem ich exit ausführe .

Wenn ich docker ps ausführe , können Sie sehen, dass derzeit keine Container ausgeführt werden.

Daten in Docker-Volumes auflisten

Lassen Sie uns nun den Inhalt des Datenordners erneut von meinem Container-Host auflisten.

Wir können die neue Datei namens containertest sehen, die innerhalb des Containers erstellt wurde . Bind-Mounts haben jedoch einige eingeschränkte Funktionen, daher sind Volumes der bevorzugte Weg, um das zu erreichen, was wir zu tun versuchen. Um mit Volumes zu beginnen, können wir denselben Befehl ausführen, um einen Container zu starten, diesmal jedoch mit ein paar kleinen Unterschieden. Wo wir das Volume angegeben haben, verwende ich anstelle des Pfads im Dateisystem des Containerhosts das Wort hostdata als Name eines Volumes, das ich erstellen und verwenden möchte.

Aus dem neuen Container heraus, wenn ich den Inhalt von C:\ aufliste , können Sie wieder sehen, dass ich einen Ordner namens shareddata habe .

Wenn ich den Inhalt dieses Ordners aufliste, ist er derzeit leer, weil wir ein leeres Volume erstellt haben. Lassen Sie uns nun Strg-P-Q ausführen wodurch wir aus dem laufenden Container herauskommen, ihn aber im Hintergrund weiterlaufen lassen.

Führen Sie auf dem Container-Host docker volume ls aus . Dadurch werden die aktuellen Volumes auf diesem Containerhost aufgelistet. Ich habe ein Volume namens hostdata , die erstellt wurde, als ich sie im docker run angegeben habe Befehl.

Wenn ich docker ps ausführe wir können unseren laufenden Container sehen.

Beenden Sie diesen Container mit docker stop . Jetzt haben wir keine laufenden Container mehr.

Entfernen Sie die angehaltenen Container, indem Sie docker rm ausführen . Wenn ich die Volumes noch einmal aufliste, sieht man, dass die hostdata Volume ist noch verfügbar und kann in neue Container gemountet werden.

Erstellen von Docker-Volumes

Eine andere Möglichkeit, ein Volume zu erstellen, ist die Verwendung von docker volume create Befehl. Wenn Sie keinen Namen angeben, gibt Docker ihm einen Namen, der aus einer langen Liste zufälliger Zeichen besteht. Andernfalls können Sie hier einen Namen angeben. Ich werde dieses Volume logdata nennen . Jetzt können wir sehen, dass es in der Liste ist, wenn wir die Volumes erneut auflisten.

Sie werden das jetzt in einen neuen Container mounten. Verwenden Sie docker run erneut und geben Sie für das Volume das soeben erstellte Volume an und mounten Sie es unter c:\logdata .

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

Wechseln Sie innerhalb des Containers zu den Protokolldaten Ordner und erstellen Sie ein paar Dateien. Im Moment gibt es keine Dateien in diesem Verzeichnis, also legen Sie welche an.

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

Jetzt habe ich zwei Protokolldateien in diesem Verzeichnis.

Führen Sie Strg-P-Q aus erneut, um diesen Container zu verlassen, während er noch ausgeführt wird. Starten Sie, während dieser Container ausgeführt wird, einen neuen Container mit demselben gemounteten Volume.

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

Wenn wir eine Auflistung über die Protokolldaten ausführen Ordner im neuen Container können wir die beiden gemeinsam genutzten Protokolldateien sehen.

Verlassen Sie nun diesen Container. Sie sollten immer noch einen laufenden Container und zwei beendete Container haben.

Stoppen Sie nun alle laufenden Container und führen Sie dann docker rm aus um alle verlassenen Container zu entfernen.

Listen Sie die Volumes erneut auf. Die Protokolldaten Volume ist noch verfügbar, um in zukünftigen Containern gemountet zu werden.

Wenn Sie ausführen, führen Sie docker volume aus , erhalten Sie Hilfe zur Verwendung des Befehls.

Inspizieren von Docker-Volumes

Wir haben uns bereits create angesehen , fahren wir also mit inspect fort . Wenn ich docker volume inspect ausführe gegen die Logdaten Volume, gibt es die Eigenschaften für dieses Volume zurück, einschließlich des Einhängepunkts, der der physische Pfad zu dem Volume auf dem Container-Host ist.

Lassen Sie uns diesen Ordner mit Invoke-Item öffnen und schau mal. Unter den Logdaten Ordner gibt es einen Ordner namens data . Wenn wir das öffnen, können wir die Dateien sehen, die zuvor aus dem Container erstellt wurden.

Docker-Volumes löschen

Um ein Volume zu löschen, können wir docker volume rm ausführen , gefolgt vom Namen des Volumes, das Sie löschen möchten.

> docker volume rm logdata

Wenn ich jetzt die Volumes aufliste, logdata ist nicht mehr da.

Schließlich können wir prune verwenden um alle nicht verwendeten lokalen Volumes zu entfernen. Dadurch werden alle Volumes gelöscht, die nicht in einem laufenden oder angehaltenen Container gemountet sind.

Sie sollten mit diesem Befehl vorsichtig sein, daher gibt es eine Warnung und eine Aufforderung, um sicherzustellen, dass Sie sicher sind, dass Sie dies tun möchten. Wenn ich Y eingebe und drücken Sie die Eingabetaste, es wird mir angezeigt, welche Volumes gelöscht wurden.

Und wenn ich meine Volumes erneut aufliste, können Sie sehen, dass sie alle gelöscht wurden.

Zusammenfassung

In diesem Blogbeitrag sollten Sie einen guten Überblick über die Verwaltung von Docker-Volumes in Windows erhalten haben. Docker ist eine großartige Containerplattform. Mit seiner Unterstützung für Windows und Ihren neu entdeckten Fähigkeiten bei der Verwaltung von Docker-Volumes werden Sie nicht mehr aufzuhalten sein!


Docker
  1. So führen Sie MySQL im Docker-Container aus:Eine einfache, leicht verständliche Anleitung

  2. So erstellen, listen und löschen Sie Docker-Container unter Linux

  3. So weisen Sie einem Docker-Container eine statische IP zu

  4. So erstellen Sie einen MySQL-Docker-Container zum Testen

  5. So erstellen Sie ein Docker-Image aus einem Container und einer Docker-Datei

So erhalten Sie die IP-Adresse eines Docker-Containers vom Host

So überprüfen Sie, ob der Docker-Daemon oder ein Container ausgeführt wird

So führen Sie PHPMyAdmin in einem Docker-Container aus

So erstellen Sie ein Docker-Image aus einem laufenden Container

So erstellen Sie einen Django-Docker-Anwendungscontainer

So erstellen Sie ein Docker-Windows-Image mit Docker-Build-Tag