Entfernen Sie alte und nicht verwendete Docker-Images
- Entfernen Sie alte und nicht verwendete Docker-Images
- Entfernen Sie ein einzelnes Docker-Image
- Entfernen Sie hängende Docker-Images
Docker erleichtert Entwicklern das Erstellen, Testen und Bereitstellen von Anwendungen, ohne sich Gedanken über Abhängigkeiten machen zu müssen, indem es sie in standardisierte Einheiten, sogenannte Container, verpackt. In der jüngeren Vergangenheit haben wir unter anderem aufgrund seiner Effizienz eine umfassende Einführung von Docker erlebt.
Docker-Images sind grundlegende Bausteine von Docker-Containern und bestehen normalerweise aus Code, Systemtools, Bibliotheken und anderen Abhängigkeiten, die unsere Anwendung zum Ausführen benötigt.
Eine gängige Methode zum Erstellen von Images mit Docker besteht darin, Images auf Basisimages zu basieren, die aus der Docker-Registrierung stammen.
Entfernen Sie alte und nicht verwendete Docker-Images
Es ist leicht, den Überblick über die im Laufe der Zeit erstellten Images, Volumes und Container zu verlieren. Docker empfiehlt, dass wir baumelnde oder ungenutzte Images und Container beseitigen, die den Speicherpool
von Docker ohne triftigen Grund verbrauchen könnten.
Dangling Docker-Images bestehen meistens aus alten unbenannten Images in Ihrem System, die Sie völlig vergessen haben. Unbenutzte Images hingegen sind Images, die von keinem Docker-Container verwendet werden.
Sie können mehrere Methoden verwenden, um ungenutzte Images in Docker zu entfernen. Bevor wir jedoch Bilder entfernen können, sollten wir sie auflisten können.
Mit dem Befehl docker images
können Sie alle Images in Ihrem System auflisten.
Code:
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
new-image latest 149077dac3e6 2 hours ago 932MB
<none> <none> 22fa358b711d 2 weeks ago 929MB
myapp latest ee771b73a9ec 4 weeks ago 929MB
rabbitmq latest d4455d35bc06 8 weeks ago 221MB
Alternativ können Sie Bilder in Ihrem System auch mit dem Befehl docker image
neben dem Befehl ls
auflisten, wie unten gezeigt.
$ docker image ls
new-image latest 149077dac3e6 2 hours ago 932MB
<none> <none> 22fa358b711d 2 weeks ago 929MB
myapp latest ee771b73a9ec 4 weeks ago 929MB
rabbitmq latest d4455d35bc06 8 weeks ago 221MB
Durch das Auflisten von Docker-Images erhalten Sie Zugriff auf die Docker-Namen und Image-IDs, mit denen Sie sie entfernen können.
Entfernen Sie ein einzelnes Docker-Image
Mit Docker können Sie nur Images entfernen, die weder von einem laufenden noch von einem gestoppten Container verwendet werden. Wenn Sie versuchen, ein von einem Container verwendetes Bild zu entfernen, erhalten Sie mit Sicherheit eine Fehlermeldung.
Der Befehl docker rmi
entfernt ein einzelnes Docker-Image unter Verwendung des Namens des Images oder der Image-ID.
$docker rmi 149077dac3e6
Error response from daemon: conflict: unable to delete 149077dac3e6 (must be forced) - image is being used by stopped container 841d1e8d8c25
Das bedeutet, dass wir dieses Image nicht entfernen können, bis wir den Docker-Container losgeworden sind. Wir können diesen Container mit dem Befehl docker rm <container_id>
entfernen.
Sobald dies erledigt ist, ist das Bild nun unbenutzt
und kann wie unten gezeigt entfernt werden.
Code:
$ docker rmi 149077dac3e6
Ausgang:
Untagged: new-image:latest
Deleted: sha256:149077dac3e6f61c31ca98da741afd5d36147b69cacd945e3d53bd763ec7b420
Wir können auch mehrere unbenutzte Images entfernen, indem wir einfach die Namen oder IDs neben dem Befehl docker rmi
auflisten.
$ docker rmi ubuntu rabbitmq
Ausgang:
Untagged: ubuntu:latest
Untagged: ubuntu@sha256:bea6d19168bbfd6af8d77c2cc3c572114eb5d113e6f422573c93cb605a0e2ffb
Deleted: sha256:ff0fea8310f3957d9b1e6ba494f3e4b63cb348c76160c6c15578e65995ffaa87
Deleted: sha256:867d0767a47c392f80acb51572851923d6d3e55289828b0cd84a96ba342660c7
Untagged: rabbitmq:latest
Untagged: rabbitmq@sha256:3d4c70ec5fc84c27efaeb56c50aafcac4fd8583b61398cc028e4876f84ae73d8
Deleted: sha256:d4455d35bc062a1c1847c2e83b8fae2f40a83075aad536f8bf82166c71431ad2
Deleted: sha256:84693641bf34ab0dee198b5b04c94c4c295626a4d29aacdeb8d17eaf200502ac
Deleted: sha256:8f76417ffbedd6e87b802960c31571aa49d14b058505475712e6ce8ee676718c
Deleted: sha256:a2fd31c374592ebd2e920f312aab1b27e592989a8af371c430fb8f915365bfb0
Deleted: sha256:b1d41dbdcd3cfe9eff61d43ecba57adf40bd26853fe2c7ab203f6f3bfbbe2761
Deleted: sha256:3560f714926f60121a89674e17510e4044f70be3229953fbbd82cb4eea6b1153
Deleted: sha256:4cd230fe05650d13ec67f7edde60fad03ab6cea3db52df798680294632ff62d3
Deleted: sha256:e535128bae717fe882e77c5283b08840efbf73e07eb65b1ef11df14ed4ea911f
Deleted: sha256:15d050b0b911cf148f48c6fb9ca3d654af4855504aee7791c7f7fce1c9fe1b21
Deleted: sha256:36ffdceb4c77bf34325fb695e64ea447f688797f2f1e3af224c29593310578d2
Entfernen Sie hängende Docker-Images
Dangling-Bilder sind Bilder, die keine Beziehung zu getaggten Bildern haben. Da diese Bilder nicht verwendet werden, erfüllen sie in Ihrem System keinen Zweck mehr und sollten entfernt werden.
Wir können baumelnde Bilder mit dem Flag -f
auflisten und neben dem Befehl docker images
unten dangling=true
setzen.
Code:
$ docker images -f dangling=true
Ausgang:
REPOSITORY TAG IMAGE ID CREATED SIZE
<none> <none> 22fa358b711d 2 weeks ago 929MB
Wir verwenden den Befehl docker prune
, um diese Bilder zu entfernen. Sie erhalten eine Meldung, die Sie auffordert, dass dieser Befehl alle baumelnden Bilder löscht.
Klicken Sie auf y
für ja, wenn Sie sicher sind, dass Sie diese Bilder loswerden möchten.
$ docker image prune
Ausgang:
WARNING! This will remove all dangling images.
Are you sure you want to continue? [y/N] y
Total reclaimed space: 0B
Schließlich können Sie auch alle Bilder in Ihrem System löschen, einschließlich der nicht verwendeten Bilder. Diese Option sollte jedoch mit Vorsicht verwendet werden und nur dann, wenn Sie sicher sind, dass Sie alle Bilder in Ihrem System löschen möchten.
Um alle Images, einschließlich der ungenutzten Images, in Ihrem System zu entfernen, müssen Sie sie zunächst mit dem Befehl docker images
und den Tags -q
und -a
auflisten. Verschachteln Sie diesen Befehl nun unter dem Befehl docker rmi
unten.
Code:
$ docker rmi $(docker images -q -a)
Untagged: ubuntu:latest
Untagged: ubuntu@sha256:bea6d19168bbfd6af8d77c2cc3c572114eb5d113e6f422573c93cb605a0e2ffb
Deleted: sha256:ff0fea8310f3957d9b1e6ba494f3e4b63cb348c76160c6c15578e65995ffaa87
Deleted: sha256:867d0767a47c392f80acb51572851923d6d3e55289828b0cd84a96ba342660c7
Deleted: sha256:22fa358b711d2ea3a1d72e59f062f6c7c38b414bdb253fb8d0def20222cadd93
Isaac Tony is a professional software developer and technical writer fascinated by Tech and productivity. He helps large technical organizations communicate their message clearly through writing.
LinkedIn