root@server:~# docker images -a
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
<none> <none> 5e2dfc857e73 5 days ago 261.6 MB
<none> <none> d053e988f23d 5 days ago 261.6 MB
<none> <none> 1d5d4a2d89eb 5 days ago 261.6 MB
<none> <none> ea0d189fdb19 5 days ago 100.5 MB
<none> <none> 26c6175962b3 5 days ago 100.5 MB
<none> <none> 73d5cec4a0b3 5 days ago 100.5 MB
<none> <none> e19590e1bac1 5 days ago 100.5 MB
Ich habe folgendes versucht:
docker rmi $(docker images | grep "^<none>" | awk "{print $3}")
Und die folgende:
docker rmi $(docker images -f "dangling=true" -q)
Erhalten Sie den folgenden Fehler:
docker: "rmi" requires a minimum of 1 argument.
See 'docker rmi --help'.
Usage: docker rmi [OPTIONS] IMAGE [IMAGE...]
Remove one or more images
docker rmi $(docker images -a | grep "^<none>" | awk '{print $3}')
docker rmi $(docker images | grep "<none>" | awk "{print $3}")
docker rmi $(docker images -f dangling=true -q)
docker images
:)Antworten:
Sie können versuchen, nur Bilder ohne Tags aufzulisten (solche ohne Beschriftung oder mit Beschriftung ohne Tag):
Einige dieser Bilder ohne Tags werden jedoch möglicherweise von anderen benötigt.
Ich ziehe es vor, nur baumelnde Bilder zu entfernen :
Wie ich für Docker 1.13+ im September 2016 unter " Entfernen alter und nicht verwendeter Docker-Images " erwähnt habe, können Sie auch den folgenden
image prune
Befehl ausführen :That being said, Janaka Bandara erwähnt in den Kommentaren :
Janaka verweist auf " So entfernen Sie ein signiertes Bild mit einem Tag " von Paul V. Novarese :
Beachten Sie, dass Paulus auch das Moby-Problem 18892 erwähnt :
quelle
<none>
für mich keine mit Tags versehenen Bilder entfernt (z. B.foo/bar:<none>
). Ich musstedocker images --digests
unddocker rmi foo/bar@<digest>
wie unter success.docker.com/KBase/… beschriebensudo docker rmi $(docker images --filter "dangling=true" -q --no-trunc)
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.35/images/json?filters=%7B%22dangling%22%3A%7B%22true%22%3Atrue%7D%7D: dial unix /var/run/docker.sock: connect: permission denied "docker rmi" requires at least 1 argument. See 'docker rmi --help'. Usage: docker rmi [OPTIONS] IMAGE [IMAGE...] [flags] Remove one or more images
hutber@hutber-blade /var/www/dockerfile-wizard $ sudo docker images --filter "dangling=true" -q --no-trunc sha256:c58f4e4b10b1f862d78f96e90bdf13ffe37993279d0992be46d5c15dad51421e sha256:db28e821bc3f337caf711a664bc529be5db8894dd73c5b013ad814cc1e9fc21b sha256:257936750a7d43ae77c713c2cb18342be935de7d3b8fad23d6664fc64acfe753 sha256:6b815cefeb527885b2b9dd831f7f40b05942f00d1367274833a6274154d8ce43
Sie können dies einfach versuchen
quelle
--force
am Ende hinzufügen . Der Befehl sieht also so aus:docker images | grep none | awk '{ print $3; }' | xargs docker rmi --force
Docker Image Prune entfernt alle baumelnden Bilder (die mit dem Tag none). Docker Image Prune -a würde auch alle Bilder entfernen, die keinen Container haben, der sie verwendet.
Der Unterschied zwischen baumelnden und nicht verwendeten Bildern wird in diesem Stapelüberlauf-Thread erläutert .
quelle
Du kannst gehen
docker rmi $(docker images -f "dangling=true" -q)
. Weitere Optionen finden Sie in der Bilddokumentation .quelle
Laut Docker-Dokumentation können Sie nur Bilder ohne Tags (baumelnd) mit auflisten
und leite sie um, um so zu
docker rmi
befehlen:Beachten
-q
Sie, dass Parameter nur numerische IDs von Containern anzeigen.quelle
Sie können verwenden,
--force
um nicht zur Bestätigung aufzufordernquelle
Ich habe es als
docker image prune -f
am nützlichsten empfunden und benutze es die ganze Zeit während meiner täglichen Arbeit. Die Verwendung des Tags-f
fordert nicht zur Bestätigung auf. Weitere Details hierquelle
Führen Sie einfach diesen Befehl aus:
quelle
Entfernen Sie Bilder mit dem
none
Namen des Repositorys wie folgt:Entfernen Sie Bilder mit
none
Tag- oder Repository-Namen:quelle
quelle
docker system prune
wird den Trick machen, es entferntAber benutze es mit Vorsicht!
quelle
Um alle Bilder mit zu entfernen
none
, müssen wir sicherstellen, dass wir alle gestoppten Container entfernt haben, die sie verwenden können: run:dann können wir alle Bilder entfernen:
quelle
Um baumelnde Bilder zu entfernen, verwenden Sie bitte:
Eine ausführlichere Beschreibung finden Sie in meiner Antwort hier: https://unix.stackexchange.com/a/445664/292327
quelle
Der folgende Befehl funktioniert für mich. Dies sind nur einfache grep "" - Bilder, die die Docker-Bild-ID abrufen und alle Bilder entfernen. Einfacher Einzelbefehl wie es sein muss.
docker rmi $(docker images |grep "<none>"| awk '{print $3}')
quelle
Dies ist eine Erweiterung von Tansadios Antwort:
Wenn folgende Fehlermeldung angezeigt wird:
Sie können es erzwingen mit
--force
:quelle
Im Folgenden werden alle
<none>
Bilder entferntSie können das Entfernen erzwingen, indem Sie zu wechseln
docker rmi
,docker rmi -f
obwohl ich dies nicht empfehle.Einige der
<none>
Bilder könnten mit anderen Bildern in Beziehung stehen. Verwenden Sie zur Sicherheit kein-f
Tag.quelle
Es ist einfach und klar,
Sogar ich habe 3 Tage gebraucht, um diesen einfachen und knackigen Fehler zu verstehen.
Das Docker-Image wurde nicht erfolgreich erstellt
Dann habe ich die 8. Zeile aus Dockerfile entfernt, diesmal war es ein Signalerfolg.
Es heißt erfolgreich dem: expo markiert, diese Zeile ist imp während des Docker-Prozesses.
quelle
Docker rmi -f $ (Docker-Bilder -a | awk 'NR> 1 && $ 2 == "" {print $ 3}')
quelle
Alles
Freigeben des PowerShell-Befehls für Windows-Liebhaber (nur für den Fall, dass Sie nicht über Bash, Grep oder Awk verfügen)
quelle
Führen Sie den folgenden Befehl aus, um die Bilder mit Docker RMI zu entfernen
quelle
Entfernen Sie alle verlassenen Behälter
oder entfernen Sie Behälter nach einem Muster
quelle
Versuchen Sie dies, um die ID der Listendocker-Bilder mit dem Tag anzuzeigen
<none>
und dann können Sie alle Bilder mit Tag löschen
<none>
. das hat bei mir funktioniert.quelle
100% funktioniert: Docker-Bilder | grep none | awk '{print $ 3}' | xargs docker rmi -f
quelle
Versuchen
docker rmi -f $(docker images -a | awk 'NR> 1 || $2 = "<none>" {print $3}')
, während es sauberere Befehle geben kannAktualisiert
quelle
docker rmi -f $(docker images -a | awk 'NR> 1 || $2 = "" {print $3}
macht nichts!Entfernen Sie einfach die Bilder mit ihren IDs:
quelle
Die baumelnden Bilder sind Geister aus den vorherigen Builds und Pulls. Löschen Sie sie einfach mit: docker rmi $ (docker images -f "dangling = true" -q)
quelle
Die folgenden Bilder wurden verwendet. Ich denke, dieser Befehl entfernt unerwünschte Bilder.
quelle