Bereinigen von Docker-Daten mit Filtern
Neben der Entfernung aller ungenutzten Daten ermöglicht es Ihnen docker system prune
, Filter zu verwenden, um gezielt Docker-Objekte zu entfernen. Dies gibt Ihnen eine feinere Kontrolle darüber, was bereinigt wird.
Filter können auf verschiedene Objekttypen angewendet werden. Bei docker system prune
können Sie basierend auf Kriterien wie dem Alter der Objekte filtern.
Erstellen wir einige weitere Docker-Objekte, um die Filterung zu demonstrieren. Wir werden ein paar Container ausführen und dann stoppen.
Führen Sie den ersten Container aus:
docker run -d --name oldcontainer ubuntu sleep 10
Dieser Container wird 10 Sekunden lang laufen und dann beenden.
Führen Sie den zweiten Container aus:
docker run -d --name newcontainer ubuntu sleep 20
Dieser Container wird 20 Sekunden lang laufen und dann beenden.
Warten Sie, bis beide Container beendet sind. Sie können ihren Status mit docker ps -a
überprüfen.
docker ps -a
Sie sollten sowohl oldcontainer
als auch newcontainer
mit dem Status "Exited" (Beendet) sehen.
Jetzt verwenden wir einen Filter, um nur Objekte zu entfernen, die älter als eine bestimmte Zeit sind. Wir können den until
-Filter mit einer Dauer verwenden. Beispielsweise können Sie until=5s
verwenden, um Objekte zu entfernen, die älter als 5 Sekunden sind.
Versuchen wir, Objekte zu bereinigen, die älter als 15 Sekunden sind. Dies sollte oldcontainer
entfernen, aber newcontainer
behalten (vorausgesetzt, Sie haben lange genug gewartet, dass oldcontainer
beendet wurde, aber nicht newcontainer
).
docker system prune -f --filter "until=15s"
Beobachten Sie die Ausgabe. Sie sollte anzeigen, dass oldcontainer
entfernt wurde, aber newcontainer
sollte verbleiben.
Verifizieren Sie die Container:
docker ps -a
Sie sollten newcontainer
in der Liste sehen, aber oldcontainer
sollte verschwunden sein.
Jetzt bereinigen wir erneut, diesmal entfernen wir Objekte, die älter als 30 Sekunden sind. Dies sollte auch newcontainer
entfernen.
docker system prune -f --filter "until=30s"
Beobachten Sie die Ausgabe. Sie sollte anzeigen, dass newcontainer
entfernt wurde.
Verifizieren Sie die Container erneut:
docker ps -a
Es sollten keine Container in der Liste sein.
Filter bieten eine leistungsstarke Möglichkeit, den Bereinigungsvorgang anzupassen. Sie können je nach Typ des zu bereinigenden Objekts (Container, Images, Volumes, Netzwerke) verschiedene Filter-Schlüssel verwenden. Der until
-Filter wird häufig verwendet, um Objekte zu bereinigen, die für eine bestimmte Zeitspanne nicht verwendet wurden.