Nicht löschen kann docker image mit abhängigen Kind Bilder
Ich versuche
docker rmi c565603bc87f
Fehler:
Fehler Antwort vom Dienst: Konflikt: nicht löschen c565603bc87f
(Sie können nicht gezwungen werden) - Bild hat von abhängigen Kind-Bilder
Also kann ich nicht löschen Bild auch mit dem -f flag. Wie auf Bild löschen und dann alle seine Kinder ?
Linux-und docker-version:
uname-a
Linux goracio-pc-4.4.0-24-generic #43-Ubuntu SMP Wed Jun 8 19:27:37 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
docker-version
Client:
Version: 1.11.2
API-version: 1.23
Go, version: go1.5.4
Git commit: b9f10c9
Erstellt: Wed Jun 1 22:00:43 2016
OS/Arch: linux/amd64
Server:
Version: 1.11.2
API-version: 1.23
Go, version: go1.5.4
Git commit: b9f10c9
Erstellt: Wed Jun 1 22:00:43 2016
OS/Arch: linux/amd64
- vielleicht könnte man helfen : gist.github.com/Siva-Charan/db7bd84ad2ca2b0779d87a75e6bb4176
- Löschen von tag-vom neuesten zum ältesten. Wenn Sie Leben in einem repo, Sie wird gezogen, wenn alle Dockerfile erfordert.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sollten Sie versuchen, entfernen Sie nicht erforderliche Bilder, bevor Sie Sie entfernen das Bild:
Danach:
prune
> "docker rmi" requires at least 1 argument.
--filter=dangling=true
. Wenn Sie immer noch, dass Fehler, bedeutet das nur, Sie haben keine baumelnden Bilder, und so, dass ein set-Befehl ergibt einen leeren string.In einigen Fällen (wie in meinem Fall), können Sie versuchen, ein Bild zu löschen durch die Angabe der Bild-id, mehrere tags, dass Sie nicht erkennen, existieren, von denen einige verwendet werden, andere Bilder. In dem Fall, Sie können nicht wollen, um das Bild zu entfernen.
Wenn Sie einen Fall von überflüssigen tags wie hier beschrieben, anstelle der
docker rmi <image_id>
verwendendocker rmi <repo:tag>
auf die redundante tag, das Sie entfernen möchten.docker rmi <repo:tag>
für mich gearbeitet.Ihre Lösung ist ganz einfach unter den Antworten, danke.finden Sie die Bild-id, und parent id, die für alle image erstellt, nachdem das Bild in Frage mit der folgenden:
Dann rufen Sie den Befehl:
"sub_image_id" ist die ID des abhängigen Bild
alle bisherigen Antworten sind richtig, aber hier ist eine Lösung, die nur deleteing alle Ihre Bilder kraftvoll (verwenden Sie diesen Befehl, auf eigene Gefahr, es zu löschen alle Ihre Bilder)
Was funktionierte war mir so verwenden Sie das REPOSITORY:TAG-Kombination eher als BILD-ID.
Als ich versuchte zu löschen, ein docker image mit dem Befehl
docker rmi <IMAGE ID>
mit keine Container im Zusammenhang mit diesem Bild habe ich die Meldung:Konnte ich löschen, mit Erfolg, wenn ich den Befehl
docker rmi RPOSITORY:TAG
docker rmi 93fd78260bd1
gescheitert, aber danndocker tag 93fd78260bd1 ubuntu:temp && docker rmi ubuntu:temp
erfolgreich war.DIESER BEFEHL ENTFERNT ALLE BILDER (MIT VORSICHT VERWENDEN)
Haben Sie versucht, verwenden Sie --force
Dieser obige code wird ausgeführt, wie ein Charme, auch doe ich hatte das gleiche Problem
Hier ist ein Skript so entfernen Sie ein Bild und alle Bilder, die davon abhängen.
Hier ist die Antwort zu finden, alle Nachkommen der Kinder, die hier eine Antwort:
docker, wie bekomme ich die Liste der abhängigen Kind Bilder?
Dann verwenden, um entfernen Sie das Kind die Bilder in Ordnung.
Gebäude auf Simon Brady brute-force-Methode hier, wenn Sie don ' T haben eine Tonne von Bildern, die Sie verwenden können, diese shell-Funktion:
und dann rufen Sie es mit
recursive_remove_image <image-id>
.Danach verwenden Sie den Befehl wie Nguyen, schlug.
Wenn ich will, zu entfernen, einige nicht verwendete Bild mit dem Namen
"<none>"
im Andockfenster ich konfrontiert mit dem problemunable to delete a354bbc7c9b7 (cannot be forced) - image has dependent child images
.Also für die Lösung dieses Problems:können Sie sehen, dass ich mehrere Bilder mit Namen javaapp:neueste und anderen container-name. So, ich habe getötet, und entfernen Sie alle Behälter mit "javaapp:die Letzte" container mit:
Dann
Also ich kann entfernen Sie alle Bilder mit dem Namen
"<none>"
goodluck
Ich habe auch dieses Problem konnte ich beheben des Problems, mit den weiter unten genannten Befehle. dies kann dazu führen, das image-container ausgeführt wird, oder beenden Sie so vor dem Bild entfernen Sie entfernen müssen container
docker ps-a -f status=beendet : dieser Befehl zeigt alle beendet Behälter, so dass dann kopieren container-Id und führen Sie dann die unten Befehle zu löschen, container
docker rm #containerId : mit diesem Befehl entfernen Sie Behälter kann dies sein Problem, dass das Wort "Bild mit abhängigen Kind-Bilder"
Dann versuchen, Sie zu entfernen Bild mit nachstehenden Befehl
docker rmi #ImageId
Hatte ich dieses Problem und keiner von den kurzen Antworten, die Sie hier arbeitete, sogar in der Seite erwähnt von @tudor oben. Ich dachte, ich würde teilen, wie ich entledigte sich die Bilder. Ich kam auf die Idee, die Bilder angewiesen sein muss, >= die Größe des übergeordneten Bild, das hilft zu identifizieren, es so können wir es entfernen.
Ich aufgeführt die Bilder in der Größe, um zu sehen, ob ich könnte vor Ort alle Korrelationen:
Was dieser tut, ist, einige spezielle Formatierung von Andockfenster " positionieren Sie das Bild die Größe-Spalte zuerst, dann führen Sie eine lesbare Art in umgekehrter Reihenfolge. Dann habe ich wiederherstellen, die einfach-zu-Lesen-Spalten.
Dann sah ich den
<none>
Container und matched die erste in der Liste mit einer ähnlichen Größe. Ich führte ein einfachesdocker rmi <image:tag>
auf, dass Bild und alle<none>
Kind Bilder, die mit ihm gingen.Das problem Bild mit allen untergeordneten Bilder eigentlich war das verdammt
myrepo/getstarted-lab
image ich verwendet als ich anfing, das Spiel mit docker. Es war, weil ich hatte ein neues Bild erstellt aus dem ersten test-Bild erstellt, die Kette.Hoffentlich hilft, dass jemand anderes irgendwann.
Nehmen wir an, wir haben ein Dockerfile
Wir bauen Bild, ohne TAG oder die Benennung
Nun haben wir einen Erfolgs-Bericht "Erfolgreich gebaut 57ca5ce94d04"
Wenn wir sehen, die docker images
Müssen wir zuerst entfernen Sie die
docker rmi 57ca5ce94d04
Gefolgt von
Durch das Bild entfernt werden!
Eine erzwungene Entfernung von allen vorgeschlagen von jemand
Erweiterung auf die Antwort von @Nguyen - diese Funktion kann Hinzugefügt werden, um Ihre
.bashrc
etc und dann Aufruf von der Kommandozeile, um zu helfen reinigen, bis keineimage has dependent child images
Fehler...Sie die Funktion ausführen können, als sich selbst, und wenn ein
docker ps
ausfällt, dann wird es ausgeführt, diedocker
Befehl mitsudo
und Sie auffordern, Ihr Passwort anzugeben.Tut NICHT löschen Sie Bilder für alle Laufenden Container!
Ich habe auch diese in meinem
.bashrc
Datei...Arbeitet mit:
können Sie genau dies tun:
➜ ~ sudo docker rmi 4ed13257bb55 -f
Gelöscht: sha256:4ed13257bb5512b975b316ef482592482ca54018a7728ea1fc387e873a68c358
Gelöscht: sha256:4a478ca02e8d2336595dcbed9c4ce034cd15f01229733e7d93a83fbb3a9026d3
Gelöscht: sha256:96df41d1ce6065cf75d05873fb1f9ea9fed0ca86addcfcec7722200ed3484c69
Gelöscht: sha256:d95efe864c7096c38757b80fddad12819fffd68ac3cc73333ebffaa42385fded
Kraft löschen eine Liste der Bilder (außer version 10, zum Beispiel)
Bildebene: - Repositories werden oft als Bilder oder container-Bilder, aber eigentlich sind Sie aus einer oder mehr Schichten. Bildebenen in einem repository verbunden sind, zusammen in einer Eltern-Kind-Beziehung. Jedes Bild Schicht repräsentiert die änderungen zwischen sich selbst und die übergeordnete Ebene.
Andockfenster-Gebäude-Muster verwendet Vererbung. Es bedeutet, dass die version
i
hängt von der versioni-1
. So, wir müssen löschen Sie die versioni+1
löschen zu können versioni
. Dies ist eine einfache Abhängigkeit.Wenn Sie wollen, löschen Sie alle Bilder, außer die Letzte (aktuelle) und die erste (Basis), dann können wir exportieren die Letzte (aktuelle einer) mit
docker save
Befehl, wie unten beschrieben.Dann löschen Sie nun alle Bilder mit Bild-id als unten.
Nun laden Sie Ihre gespeicherten tgz-Bild als unten.
finden Sie die Bild-id des geladenen Bildes mit docker ps -q. Es muss nicht tag und Namen. Sie können einfach die update-tag und dem Namen, wie unten getan.