Entfernen von Build-Caches mit Filtern
In diesem Schritt werden wir untersuchen, wie man Build-Caches mithilfe von Filtern entfernt. Filter ermöglichen es Ihnen, Build-Caches gezielt basierend auf bestimmten Kriterien zu entfernen, sodass Sie eine feinere Kontrolle darüber haben, was entfernt wird.
Wir haben bereits den Filter dangling=true
in einem vorherigen Schritt kennengelernt. Ein weiterer nützlicher Filter ist until
, der es Ihnen ermöglicht, Build-Caches zu entfernen, die vor einem bestimmten Zeitstempel erstellt wurden.
Zunächst erstellen wir erneut unser myimage:cachetest
-Image, um sicherzustellen, dass wir aktuelle Build-Caches haben.
Navigieren Sie in das Verzeichnis ~/project
, falls Sie nicht bereits dort sind.
cd ~/project
Erstellen Sie das Image erneut:
docker build -t myimage:cachetest -f Dockerfile.cache .
Jetzt simulieren wir ein Szenario, in dem Sie Build-Caches entfernen möchten, die älter als eine bestimmte Zeit sind. Zu Demonstrationszwecken verwenden wir einen Filter, um Caches zu entfernen, die älter als einige Minuten sind.
Um Build-Caches, die älter als eine bestimmte Zeit sind, zu entfernen, können Sie die Option --filter until=<timestamp>
verwenden. Der Zeitstempel kann in verschiedenen Formaten vorliegen, einschließlich einer Dauer wie 5m
(5 Minuten) oder 2h
(2 Stunden).
Lassen Sie uns Build-Caches entfernen, die älter als 5 Minuten sind.
docker builder prune --filter until=5m
Sie werden aufgefordert, die Aktion zu bestätigen. Geben Sie y
ein und drücken Sie Enter
.
WARNING! This will remove all build cache created before 5 minutes ago.
Are you sure you want to continue? [y/N] y
Die Ausgabe zeigt die Menge an wiedergewonnenem Speicherplatz aus Build-Caches, die älter als 5 Minuten waren. Wenn Sie das Image gerade erstellt haben, gibt es möglicherweise nicht viele Caches, die älter als 5 Minuten sind. In einem realen Szenario mit vielen Builds im Laufe der Zeit kann dieser Filter jedoch sehr nützlich sein, um alte Caches aufzuräumen.
Sie können auch Filter kombinieren. Beispielsweise können Sie, um hängende Caches, die älter als eine bestimmte Zeit sind, zu entfernen, Folgendes verwenden:
docker builder prune --filter dangling=true --filter until=24h
Dies würde nur die hängenden Build-Caches entfernen, die älter als 24 Stunden sind.
Die Verwendung von Filtern bietet Flexibilität bei der Verwaltung Ihrer Build-Caches und hilft Ihnen, Plattenplatz strategischer freizugeben.