Wie man den docker volume rm-Befehl verwendet, um Volumes zu entfernen

DockerDockerBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab lernen Sie, wie Sie Docker-Volumes (Docker-Dateisysteme) mit dem Befehl docker volume rm verwalten. Sie beginnen damit, ein Volume zu erstellen und üben dann das Entfernen desselben.

Darüber hinaus werden Sie Szenarien untersuchen, in denen ein Volume von einem Container verwendet wird, und versuchen, es zu entfernen. Sie werden das Standardverhalten verstehen und erfahren, wie Sie die Entfernung eines Volumes erzwingen können, das derzeit an einen laufenden Container angehängt ist.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker(("Docker")) -.-> docker/VolumeOperationsGroup(["Volume Operations"]) docker/ContainerOperationsGroup -.-> docker/run("Run a Container") docker/ContainerOperationsGroup -.-> docker/ls("List Containers") docker/ContainerOperationsGroup -.-> docker/ps("List Running Containers") docker/ContainerOperationsGroup -.-> docker/rm("Remove Container") docker/ContainerOperationsGroup -.-> docker/inspect("Inspect Container") docker/ContainerOperationsGroup -.-> docker/create("Create Container") docker/VolumeOperationsGroup -.-> docker/volume("Manage Volumes") subgraph Lab Skills docker/run -.-> lab-555262{{"Wie man den docker volume rm-Befehl verwendet, um Volumes zu entfernen"}} docker/ls -.-> lab-555262{{"Wie man den docker volume rm-Befehl verwendet, um Volumes zu entfernen"}} docker/ps -.-> lab-555262{{"Wie man den docker volume rm-Befehl verwendet, um Volumes zu entfernen"}} docker/rm -.-> lab-555262{{"Wie man den docker volume rm-Befehl verwendet, um Volumes zu entfernen"}} docker/inspect -.-> lab-555262{{"Wie man den docker volume rm-Befehl verwendet, um Volumes zu entfernen"}} docker/create -.-> lab-555262{{"Wie man den docker volume rm-Befehl verwendet, um Volumes zu entfernen"}} docker/volume -.-> lab-555262{{"Wie man den docker volume rm-Befehl verwendet, um Volumes zu entfernen"}} end

Erstellen eines Volumes

In diesem Schritt lernen Sie, wie Sie ein Docker-Volume (Docker-Dateisystem) erstellen. Volumes sind die bevorzugte Methode, um Daten zu speichern, die von Docker-Containern generiert und verwendet werden. Während Bind-Mounts (Verzeichnismounts) von der Verzeichnisstruktur des Host-Systems abhängen, werden Volumes vollständig von Docker verwaltet.

Um ein Volume zu erstellen, verwenden Sie den Befehl docker volume create gefolgt vom Namen, den Sie dem Volume geben möchten. Erstellen wir ein Volume mit dem Namen myvolume.

docker volume create myvolume

Wenn die Erstellung erfolgreich war, sollte der Name des Volumes in der Konsole angezeigt werden.

Lassen Sie uns nun überprüfen, ob das Volume erstellt wurde, indem wir alle verfügbaren Volumes mit dem Befehl docker volume ls auflisten.

docker volume ls

In der Ausgabe sollte myvolume aufgeführt sein.

Versuch, das Volume zu entfernen

In diesem Schritt versuchen Sie, das Volume zu entfernen, das Sie im vorherigen Schritt erstellt haben. Um ein Docker-Volume (Docker-Dateisystem) zu entfernen, verwenden Sie den Befehl docker volume rm gefolgt vom Namen des Volumes.

Versuchen wir, das Volume myvolume zu entfernen.

docker volume rm myvolume

Wenn die Entfernung erfolgreich war, sollte der Name des Volumes in der Konsole angezeigt werden.

Lassen Sie uns nun überprüfen, ob das Volume entfernt wurde, indem wir erneut alle verfügbaren Volumes auflisten.

docker volume ls

myvolume sollte nicht mehr in der Ausgabe erscheinen.

Entfernen des Volumes

Im vorherigen Schritt haben Sie versucht, das Volume zu entfernen. Jetzt stellen wir sicher, dass es entfernt wurde. Sie verwenden den gleichen Befehl docker volume rm gefolgt vom Namen des Volumes.

docker volume rm myvolume

Wenn das Volume im vorherigen Schritt erfolgreich entfernt wurde, sehen Sie möglicherweise eine Fehlermeldung, die darauf hinweist, dass das Volume nicht gefunden wurde. Dies ist zu erwarten und bestätigt, dass das Volume entfernt wurde. Wenn das Volume im vorherigen Schritt nicht entfernt wurde, wird es jetzt durch diesen Befehl entfernt.

Um zu bestätigen, dass das Volume entfernt wurde, listen Sie die Volumes erneut auf.

docker volume ls

myvolume sollte nicht in der Liste erscheinen.

Erstellen eines Volumes und eines Containers, das es nutzt

In diesem Schritt erstellen Sie ein neues Volume und anschließend einen Docker-Container, der dieses Volume zur Datenspeicherung nutzt.

Zunächst erstellen wir ein neues Volume namens mydata.

docker volume create mydata

Als Nächstes führen wir einen einfachen ubuntu-Container aus und montieren das mydata-Volume in das Verzeichnis /app innerhalb des Containers. Wir führen auch einen Befehl aus, der etwas Text in eine Datei innerhalb des gemounteten Volumes schreibt.

Bevor wir den Container ausführen, laden wir das ubuntu-Image herunter, um sicherzustellen, dass es lokal verfügbar ist.

docker pull ubuntu

Jetzt führen wir den Container aus und schreiben in das Volume:

docker run -d --name mycontainer -v mydata:/app ubuntu bash -c "echo 'Hello from the volume!' > /app/greeting.txt && tail -f /dev/null"

Lassen Sie uns diesen Befehl analysieren:

  • docker run: Befehl zum Ausführen eines neuen Containers.
  • -d: Führt den Container im detached-Modus (im Hintergrund) aus.
  • --name mycontainer: Weist dem Container den Namen mycontainer zu.
  • -v mydata:/app: Dies ist die Volume-Montage. Es montiert das Docker-Volume namens mydata in das Verzeichnis /app innerhalb des Containers.
  • ubuntu: Das zu verwendende Docker-Image.
  • bash -c "echo 'Hello from the volume!' > /app/greeting.txt && tail -f /dev/null": Der Befehl, der innerhalb des Containers ausgeführt wird. Es schreibt "Hello from the volume!" in eine Datei namens greeting.txt im Verzeichnis /app (das ist das gemountete Volume) und führt dann tail -f /dev/null aus, um den Container am Laufen zu halten.

Um zu überprüfen, dass der Container läuft und das Volume angehängt ist, können Sie den Container untersuchen.

docker inspect mycontainer

Suchen Sie im Output nach dem Abschnitt "Mounts". Sie sollten einen Eintrag für das mydata-Volume sehen, das an /app gemountet ist.

Versuch, ein verwendetes Volume zu entfernen

In diesem Schritt versuchen Sie, das mydata-Volume zu entfernen, während es noch vom Container mycontainer verwendet wird. Dies zeigt, was passiert, wenn Sie versuchen, ein Volume zu entfernen, das aktiv an einen laufenden Container gemountet ist.

Verwenden Sie den Befehl docker volume rm, um zu versuchen, das mydata-Volume zu entfernen.

docker volume rm mydata

Sie sollten eine Fehlermeldung sehen, die darauf hinweist, dass das Volume verwendet wird und nicht entfernt werden kann. Dies ist das erwartete Verhalten. Docker verhindert, dass Sie ein Volume entfernen, das derzeit an einen laufenden Container angehängt ist, um Datenverlust oder unerwartetes Verhalten zu vermeiden.

Um zu bestätigen, dass das Volume nicht entfernt wurde, listen Sie die Volumes erneut auf.

docker volume ls

Sie sollten immer noch mydata in der Ausgabe sehen.

Erzwingen der Entfernung eines verwendeten Volumes

Im vorherigen Schritt haben Sie gelernt, dass Sie ein Volume, das derzeit von einem laufenden Container verwendet wird, nicht entfernen können. Es gibt jedoch Situationen, in denen Sie ein Volume entfernen müssen, auch wenn es verwendet wird. Docker bietet die Möglichkeit, die Entfernung eines Volumes zu erzwingen, indem Sie die -f- oder --force-Option mit dem docker volume rm-Befehl verwenden.

Hinweis: Das Erzwingen der Entfernung eines verwendeten Volumes kann zu Datenverlust und unerwartetem Verhalten des Containers führen, der es verwendet. Verwenden Sie diese Option mit Vorsicht.

Versuchen wir, das mydata-Volume zu erzwingen, während mycontainer noch läuft.

docker volume rm -f mydata

Sie sollten den Namen des Volumes in der Konsole sehen, was darauf hinweist, dass es entfernt wurde.

Jetzt überprüfen wir, ob das Volume entfernt wurde, indem wir die Volumes auflisten.

docker volume ls

Das mydata-Volume sollte nicht mehr in der Liste erscheinen.

Sie können auch den Status des mycontainer überprüfen.

docker ps

Der mycontainer kann immer noch in der Liste der laufenden Container erscheinen, aber er kann in einem fehlerhaften Zustand sein oder unerwartet stoppen, da sein Volume entfernt wurde.

Schließlich stoppen und entfernen wir den Container, um aufzuräumen.

docker stop mycontainer
docker rm mycontainer

Zusammenfassung

In diesem Lab haben Sie gelernt, wie Sie Docker-Volumes mit dem docker volume-Befehl verwalten. Sie haben zunächst ein Volume namens myvolume mit docker volume create erstellt und seine Existenz mit docker volume ls überprüft. Anschließend haben Sie das Entfernen des Volumes mit docker volume rm geübt und die Entfernung durch erneutes Auflisten der Volumes bestätigt.

Sie haben auch das Verhalten von docker volume rm untersucht, wenn ein Volume von einem Container verwendet wird. Sie haben ein Volume und einen Container erstellt, der es nutzt, und beobachtet, dass der Versuch, das Volume direkt zu entfernen, fehlschlug. Schließlich haben Sie gelernt, wie Sie die Entfernung eines verwendeten Volumes erzwingen können, indem Sie die -f-Option zum docker volume rm-Befehl hinzufügen.