Docker Prune: Effiziente Bereinigung ungenutzter Docker-Ressourcen

Docker ist eine leistungsstarke Containerisierungsplattform, die häufig zum Erstellen, Ausführen und Verteilen von Anwendungen eingesetzt wird. Im Laufe der Zeit können sich durch Entwicklung und Bereitstellung ungenutzte Elemente wie gestoppte Container, „dangling“ Images, ungenutzte Volumes und inaktive Netzwerke ansammeln. Diese Reste beanspruchen Speicherplatz und können die Systemleistung beeinträchtigen, wenn sie nicht entfernt werden.

In dieser Anleitung erfahren Sie, wie Sie mit der docker prune-Befehlsfamilie ungenutzte Docker-Ressourcen sicher löschen. Sie lernen die Unterschiede zwischen docker prune und manueller Entfernung kennen, verstehen die Varianten von „prune“ und erhalten Best Practices, um Datenverlust beim Aufräumen zu vermeiden.

Was ist docker prune?

Die docker prune-Befehlsfamilie entfernt ungenutzte Docker-Ressourcen wie gestoppte Container, „dangling“ Images, ungenutzte Volumes, Netzwerke und Build-Cache in einem einzigen Schritt. Damit geht die Bereinigung schneller und ist weniger mühsam als das manuelle Löschen mit docker rm oder docker rmi.

Funktion docker rm / rmi docker prune
Entfernt ein Element pro Vorgang Ja Nein
Entfernt alle ungenutzten Ressourcen auf einmal Nein Ja
Benötigt spezifische Namen oder IDs Ja Nein
Sicherer für manuelles Löschen Ja Nein
Nützlich für schnelles Aufräumen Nein Ja

Verwenden Sie docker rm, wenn Präzision erforderlich ist. Verwenden Sie docker prune, wenn Sie alles effizient bereinigen möchten.

Kurzfassung

Nachfolgend die gebräuchlichsten Befehle zum Entfernen ungenutzter Docker-Ressourcen:

# Entfernt alle ungenutzten Container, Netzwerke, Images und Build-Cache
$ docker system prune

# Entfernt nur gestoppte Container
$ docker container prune

# Entfernt dangling (nicht getaggte und ungenutzte) Images
$ docker image prune

# Entfernt Volumes, die von keinem Container genutzt werden
$ docker volume prune

# Entfernt Netzwerke, die mit keinem Container verbunden sind
$ docker network prune

# Entfernt den Docker-Build-Cache
$ docker builder prune

Häufige Optionen für docker prune

Die meisten docker prune-Befehle unterstützen folgende Optionen:

Option Beschreibung
–force Überspringt Bestätigungsabfragen. Vorsicht: Kann versehentliches Löschen verursachen.
–filter Filtert Ressourcen nach Kriterien wie Alter. Beispiel: --filter "until=24h" entfernt Elemente, die älter als 24 Stunden sind.
–all (Bei Images) Entfernt alle ungenutzten Images, nicht nur „dangling“.

Mit Filtern können Sie sicherstellen, dass neue Ressourcen nicht versehentlich entfernt werden.

Alle Docker-Ressourcen mit docker system prune bereinigen

Der Befehl docker system prune entfernt alle ungenutzten Container, Netzwerke, „dangling“ Images und den Build-Cache.

Befehlssyntax

docker system prune [OPTIONS]

Befehlsbeispiele

Interaktives Bereinigen ungenutzter Ressourcen:

Bereinigung ohne Bestätigung:

$ docker system prune --force

Bereinigung von Ressourcen, die älter als 48 Stunden sind:

$ docker system prune --filter "until=48h"

Wann verwenden?

  • Nach intensiver Entwicklung oder häufigen Containeränderungen
  • Wenn der Speicherplatz knapp wird
  • Wenn keine gestoppten Container oder ungenutzten Images benötigt werden

Docker-Container mit docker container prune bereinigen

Mit diesem Befehl entfernen Sie ausschließlich gestoppte Container. Laufende Container bleiben unberührt.

Befehlssyntax

docker container prune [OPTIONS]

Befehlsbeispiele

Alle gestoppten Container löschen:

Alle gestoppten Container ohne Bestätigung löschen:

$ docker container prune --force

Gestoppte Container löschen, die älter als 24 Stunden sind:

$ docker container prune --filter "until=24h"

Wann verwenden?

  • Nach Tests oder Entwicklung mit kurzlebigen Containern
  • Wenn sich viele gestoppte Container angesammelt haben
  • Um Speicherplatz freizugeben, ohne laufende Container zu beeinflussen

Docker-Images mit docker image prune bereinigen

Dieser Befehl entfernt ungenutzte Docker-Images. Standardmäßig werden nur „dangling“ Images gelöscht – also nicht getaggte und von keinem Container verwendete Images.

Befehlssyntax

docker image prune [OPTIONS]

Befehlsbeispiele

Alle „dangling“ Images entfernen:

Alle ungenutzten Images (nicht nur „dangling“) löschen:

$ docker image prune --all

Unbenutzte Images löschen, die älter als 72 Stunden sind:

$ docker image prune --all --filter "until=72h"

Wann verwenden?

  • Nach dem Erstellen oder Herunterladen vieler temporärer Images
  • Wenn der Speicherplatz durch Image-Layer knapp wird
  • Um alte Builds zu entfernen, die nicht mehr von Containern genutzt werden

Docker-Volumes mit docker volume prune bereinigen

Dieser Befehl entfernt Volumes, die von keinem Container genutzt werden. Aktive oder verbundene Volumes bleiben erhalten.

Befehlssyntax

docker volume prune [OPTIONS]

Befehlsbeispiele

Alle ungenutzten Volumes interaktiv löschen:

Alle ungenutzten Volumes ohne Bestätigung löschen:

$ docker volume prune --force

Wann verwenden?

  • Nach dem Löschen von Containern, die zuvor persistente Volumes genutzt haben
  • Wenn sich temporäre oder Test-Volumes ansammeln
  • Um Speicherplatz zurückzugewinnen, der durch verwaiste Daten belegt ist

Warnung: Volumedaten sind nach dem Löschen unwiederbringlich. Prüfen Sie immer, welche Volumes noch aktiv genutzt werden.

Docker-Netzwerke mit docker network prune bereinigen

Mit diesem Befehl entfernen Sie Docker-Netzwerke, die mit keinem laufenden oder gestoppten Container verbunden sind.

Befehlssyntax

docker network prune [OPTIONS]

Befehlsbeispiele

Alle ungenutzten Netzwerke interaktiv löschen:

Alle ungenutzten Netzwerke ohne Bestätigung löschen:

$ docker network prune --force

Wann verwenden?

  • Nach dem Entfernen von Containern, die mit docker-compose erstellt wurden
  • Beim Testen von Multi-Container-Anwendungen
  • Um verwaiste oder automatisch erstellte Bridge-Netzwerke zu bereinigen

Docker-Build-Cache mit docker builder prune bereinigen

Dieser Befehl löscht den beim Image-Build erstellten Cache. Standardmäßig werden nur ungenutzte („dangling“) Cache-Layer entfernt.

Befehlssyntax

docker builder prune [OPTIONS]

Befehlsbeispiele

Unbenutzten Build-Cache interaktiv löschen:

Gesamten ungenutzten Build-Cache ohne Bestätigung löschen:

$ docker builder prune --all --force

Wann verwenden?

  • Nach häufigem Erstellen von Images während der Entwicklung
  • Wenn der Speicherplatz knapp wird
  • Um nicht mehr benötigte Zwischen-Layer zu löschen

Fehlerbehebung bei Docker Prune

Ursache: Docker entfernt nur ungenutzte Ressourcen. Wenn ein Container oder Volume noch referenziert wird, erfolgt keine Bereinigung.

Lösung

Container stoppen:

$ docker container stop <container_id>

Container entfernen:

$ docker container rm <container_id>

Prune erneut ausführen:

Ursache: Das Volume ist noch mit einem Container verbunden.

Lösung

Alle Volumes auflisten:

Volume prüfen, um die Nutzung zu ermitteln:

$ docker volume inspect <volume_name>

Den verbundenen Container entfernen:

$ docker container rm <container_id>

Volumes anschließend bereinigen:

Ursache: Einige Ressourcen werden noch referenziert oder waren im letzten Prune-Befehl nicht enthalten.

Lösung

Speichernutzung prüfen:

Zielgerichtete Prune-Befehle ausführen:


Komplette Bereinigung durchführen (nur wenn sicher):

$ docker system prune --all

Fazit

In diesem Artikel haben Sie gelernt, wie ungenutzte Docker-Ressourcen mit der docker prune-Befehlsfamilie bereinigt werden können. Sie haben gesehen, wie sich gestoppte Container, „dangling“ Images, ungenutzte Volumes und Netzwerke sowie Build-Cache sicher und effizient entfernen lassen. Diese Befehle tragen dazu bei, eine saubere Entwicklungsumgebung zu bewahren und Speicherplatz zu sparen.

Quelle: vultr.com

Jetzt 200€ Guthaben sichern

Registrieren Sie sich jetzt in unserer ccloud³ und erhalten Sie 200€ Startguthaben für Ihr Projekt.

Das könnte Sie auch interessieren: