GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

So entfernen Sie Docker-Images, Container, Netzwerke und Volumes

Einführung

Docker-Container sind darauf ausgelegt, eine autarke Umgebung mit allen Bibliotheken und Konfigurationen bereitzustellen, die für die Ausführung der Software erforderlich sind. Während der Entwicklung können sie mit alten, veralteten und ungenutzten Komponenten unorganisiert werden.

In diesem Leitfaden erfahren Sie, wie Sie eine Docker-Umgebung organisieren, indem Sie Docker-Images, Container, Volumes und Netzwerke entfernen.

Die Verwendung dieser Befehle macht die Docker-Containerverwaltung schnell und unkompliziert.

Voraussetzungen

  • Linux-System mit Docker
  • Zugriff auf ein Terminal/eine Befehlszeile (Strg + Alt +T auf Ubuntu, Alt +F2 auf CentOS)
  • Benutzerkonto mit sudo Privilegien

So entfernen Sie Docker-Container

Ein Container schafft eine bestimmte Umgebung, in der ein Prozess ausgeführt werden kann. Viele Container werden während des Entwicklungslebenszyklus erstellt, getestet und aufgegeben.

Daher ist es wichtig zu wissen, wie man unnötige Container findet und entfernt.

Container stoppen

1. Listen Sie zuerst alle Docker-Container mit dem Befehl auf:

docker container ls -a

Die Ausgabe zeigt eine Liste aller laufenden Container, ihrer IDs, Namen, Bilder, Status und anderer Parameter.

Sie können auch eine Liste aller Container nur anhand ihrer numerischen IDs generieren, führen Sie den folgenden Befehl aus:

docker container ls -aq 

2. Um einen bestimmten Container zu stoppen , geben Sie Folgendes ein:

docker container stop [container_id]

Ersetzen Sie [container_id] mit der numerischen ID des Containers aus Ihrer Liste.

Sie können mehrere Container-IDs in denselben Befehl eingeben.

Um alle Container zu stoppen , geben Sie ein:

docker container stop $(docker container ls -aq)

Dadurch wird Docker gezwungen, die Liste aller Container-IDs als Ziel des Stop zu verwenden Befehl.

Einen angehaltenen Container entfernen

Zum Entfernen eines angehaltenen Containers , verwenden Sie den Befehl:

docker container rm [container_id]

Wie zuvor entfernt dies einen Container mit der von Ihnen angegebenen ID.

Alle angehaltenen Container entfernen

Zum Entfernen aller angehaltenen Container :

docker container rm $(docker container ls -aq)

Alle Docker-Container entfernen

Um Docker zu löschen und von vorne zu beginnen, geben Sie den Befehl ein:

docker container stop $(docker container ls -aq) && docker system prune -af --volumes

Dies weist Docker an, die in Klammern aufgeführten Container zu stoppen.

Innerhalb der Klammern weisen Sie Docker an, eine Liste aller Container mit ihrer numerischen ID zu erstellen. Anschließend werden die Informationen an den Containerstop zurückgesendet Befehl und stoppt alle Container.

Der && -Attribut weist Docker an, alle angehaltenen Container und Volumes zu entfernen.

-af gibt an, dass dies für alle Container gelten sollte (a ) ohne erforderliche Bestätigung (f ).

Container mit Filtern entfernen

Sie können auch festlegen, dass alle Objekte gelöscht werden, die nicht mit einem bestimmten Label übereinstimmen.

Verwenden Sie dazu den Befehl:

docker container prune --filter="label!=maintainer=Jeremy"

Dieser Befehl weist Docker an, alle Container zu entfernen die nicht mit einem Betreuer von "jeremy" gekennzeichnet sind ." Die != Befehl ist eine logische Notation, die "ungleich" bedeutet ."

Eine Aufschlüsselung des Labels Befehle:

  • label=
  • label==
  • label!=
  • label!==

Die Verwendung dieser Begriffe in Verbindung mit Labels gibt Ihnen eine umfassende Kontrolle über das Entfernen von Assets in Docker.

So entfernen Sie Docker-Images

Docker-Images sind Dateien, die mehrere Ebenen enthalten, die zum Ausführen von Code in einem Container verwendet werden.

Bilder können während der Entwicklung viele Iterationen durchlaufen. Alte und veraltete Bilder können Ihr System unübersichtlich machen, Speicherplatz beanspruchen und die Suche umständlicher machen.

1. So entfernen Sie ein Docker-Image , listen Sie zunächst alle Bilder auf Ihrem System auf:

docker image ls

Die Ausgabe zeigt die lokal verfügbaren Docker-Images, wie unten gezeigt.

2. Notieren Sie sich die BILD-ID – Dies ist die Kennung, die zum Entfernen des Bildes verwendet wird.

3. Entfernen Sie dann die unerwünschten Bilder:

docker image rm [image_id1] [image_id2]

Ersetzen Sie [image_id1][code> und [image_id2][code> mit der Bild-ID, die Sie aus dem ersten Befehl gezogen haben. Sie können eine einzelne Bild-ID oder mehrere IDs zum Entfernen eingeben.

Das System antwortet möglicherweise auf Ihre Anfrage mit einer Fehlermeldung, dass ein Konflikt besteht und die Repository-Referenz nicht entfernt werden kann. Dies zeigt an, dass ein Container das Image verwendet. Sie müssen zuerst den Container entfernen, bevor Sie das Bild entfernen können.

Docker-Images mit Filtern entfernen

Zum Zeitpunkt der Veröffentlichung sind die einzigen unterstützten Filter bis und label . Dennoch sind dies leistungsstarke Tools zum Verwalten von Docker-Ressourcen.

Verwenden Sie das bis filtern, um alle Ressourcen bis zu einem bestimmten Zeitpunkt zu entfernen.

Geben Sie Folgendes ein:

docker image prune -a --filter "until=24h"

Dadurch werden alle (-a ) Bilder, die in den letzten 24 Stunden erstellt wurden. Der Befehl kann für Container, Bilder und Filter verwendet werden. Achten Sie darauf, das zu entfernende Asset anzugeben.

Das bis Der Befehl akzeptiert Unix-Zeitstempel, datumsformatierte Zeitstempel oder eine Zeitdauer (30 Min., 4 Std., 2 Std. 25 Min.), die gegen die Maschinenzeit berechnet wird.

Verwenden Sie das Label Befehl zum Entfernen von Assets, die durch Labels definiert sind.

Geben Sie Folgendes ein:

docker image prune --filter="label=old"

Dadurch werden alle Docker-Images entfernt die als "alt" gekennzeichnet wurden.

Filtern kann auch verwendet werden, um einen bestimmten Wert eines Labels zu definieren.

Wenn beispielsweise ein Container mit dem Schlüssel „Maintainer“ gekennzeichnet ist und der Wert von „Maintainer“ entweder „Rechnung“ oder „Jeremy“ ist, können Sie Folgendes eingeben:

docker container prune --filter="label=maintainer=bill"

Docker entfernt dann alle Container mit dem Label „maintainer“ mit dem Wert „bill.“

So entfernen Sie Docker-Volumes

Ein Volume wird zum Speichern von Docker-Daten verwendet.

Es hilft, Daten außerhalb von Containern so zu speichern und zu organisieren, dass sie für mehrere Container zugänglich sind.

1. Verwenden Sie den folgenden Befehl, um eine Liste aller verfügbaren Docker-Volumes zu generieren:

docker volume ls

Notieren Sie sich den Volumennamen Sie entfernen möchten.

2. Geben Sie dann ein:

docker volume rm VolumeName

Achten Sie darauf, VolumeName zu ersetzen mit dem tatsächlichen Namen, den Sie mit dem vorherigen Befehl generiert haben.

Wenn das Volume von einem vorhandenen Container verwendet wird, antwortet das System mit einem Fehler. Das bedeutet, dass Sie zuerst den Behälter entfernen müssen.

So entfernen Sie Docker-Netzwerke

Docker-Netzwerke ermöglichen es verschiedenen Containern, frei miteinander zu kommunizieren und gleichzeitig Datenverkehr von außerhalb des Netzwerks zu verhindern. Dies geschieht normalerweise mit einem Docker-Bridge-Netzwerk.

Die Prune Befehl entfernt alle ungenutzten Netzwerke.

Ein einzelnes Netzwerk entfernen

1. Zeigen Sie eine Liste aller vorhandenen Docker-Netzwerke an mit dem Befehl:

docker network ls

2. Notieren Sie sich die NETZWERK-ID – Dies ist die Kennung, die zum Entfernen eines bestimmten Netzwerks verwendet wird. Geben Sie dann ein:

docker network rm [networkID]

Ersetzen Sie [networkID] mit der ID, die Sie vom ersten Befehl erfasst haben.

Möglicherweise erhalten Sie eine Fehlermeldung, die besagt, dass das Netzwerk aktive Endpunkte hat. Das bedeutet, dass das Netzwerk derzeit von Containern verwendet wird. Sie müssen die Container entfernen, die das Netzwerk verwenden, bevor Sie das Netzwerk entfernen können.

Entfernen Sie alle nicht verwendeten Docker-Objekte

Die Prune entfernt automatisch alle Ressourcen, die keinem Container zugeordnet sind. Dies ist eine optimierte Methode zum Bereinigen ungenutzter Images, Container, Volumes und Netzwerke.

Geben Sie in einem Terminalfenster Folgendes ein:

docker system prune

Zusätzliche Flags können eingeschlossen werden:

  • -a Angehaltene Container und ungenutzte Bilder einbeziehen
  • -f Umgeht den Bestätigungsdialog
  • --volumes Entfernt alle unbenutzten Volumes

Außerdem können Sie anstelle der gesamten Umgebung einen einzelnen Objekttyp angeben, der entfernt werden soll:

docker container prune
docker image prune
docker volume prune
docker network prune

Ausführen von docker system prune -a entfernt sowohl unbenutzte als auch baumelnde Bilder. Bilder, die in einem Container verwendet werden, der entweder gerade ausgeführt oder beendet wird, sind NICHT betroffen.

Alle Docker-Ressourcen auflisten

Geben Sie die folgenden Befehle ein, um Ressourcen anzuzeigen:

docker container ls
docker image ls
docker volume ls
docker network ls
docker info

Die oben genannte Liste enthält die Anzahl der Container, Images und Informationen zur Docker-Installation. Diese Befehle können Ihnen dabei helfen, Ressourcen zu finden und zu identifizieren, die Sie behalten oder löschen möchten.

Die folgenden Flags können auch hinzugefügt werden:

  • -a Anzeige der gesamten Ressource (einschließlich der angehaltenen)
  • -q oder --quiet (nur die numerische ID anzeigen)

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

  2. So teilen Sie Daten zwischen Docker-Containern

  3. So listen Sie Docker-Container auf

  4. So sichern und wiederherstellen Sie Docker-Container

  5. So halten Sie Docker-Container an und setzen sie fort

So überprüfen Sie die Speicherplatznutzung für Docker-Images, Container und Volumes

So führen Sie Docker-Container aus

So entfernen Sie Docker-Container

So stoppen Sie Docker-Container

So benennen oder umbenennen Sie Docker-Container

So verwalten Sie Docker-Container