ich versuche
docker rmi c565603bc87f
Error:
Fehlerantwort vom Dämon: Konflikt: c565603bc87f kann nicht gelöscht werden (kann nicht erzwungen werden) - Bild hat abhängige untergeordnete Bilder
Daher kann ich das Bild auch mit dem Flag -f nicht löschen. Wie lösche ich dann das Bild und alle seine Kinder?
Linux- und Docker-Version:
uname -a Linux goracio-pc 4.4.0-24-generic # 43-Ubuntu SMP Mi 8. Juni 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: Mi 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: Mi Jun 1 22:00:43 2016 OS / Arch: linux / amd64
docker
docker-image
römisch
quelle
quelle
Antworten:
Sie sollten versuchen, unnötige Bilder zu entfernen, bevor Sie das Bild entfernen:
Führen Sie danach Folgendes aus:
quelle
prune
> "docker rmi" requires at least 1 argument.
--filter=dangling=true
. Wenn Sie diesen Fehler immer noch erhalten, bedeutet dies nur, dass Sie keine baumelnden Bilder haben und der Befehl in-set zu einer leeren Zeichenfolge ausgewertet wird.In einigen Fällen (wie in meinem Fall) versuchen Sie möglicherweise, ein Bild zu löschen, indem Sie die Bild-ID angeben, die mehrere Tags enthält , von denen Sie nicht wissen, dass sie existieren. Einige davon können von anderen Bildern verwendet werden. In diesem Fall möchten Sie das Bild möglicherweise nicht entfernen .
Wenn Sie einen Fall von redundanten Tags , wie hier beschrieben, statt
docker rmi <image_id>
Verwendungdocker rmi <repo:tag>
auf dem redundanten Tag , das Sie entfernen möchten.quelle
docker rmi <repo:tag>
Ihre Lösung ist ganz einfach unter diesen Antworten, danke.Untagged: drud/ddev-webserver:20200301_leymannx_apache-junk-built
repo:tag
da acht mit Tags versehene Bilder erstellt werden, die nur zwei Bild-IDs gemeinsam haben. Selbst Visual Studio löscht sie nicht in seinem Containerverwaltungsfenster ...docker rmi <repo:tag>
nur die Markierungen auf und löscht nicht unbedingt ein Bild. Wenn mehr als ein Tag auf dieses Bild verweist oder wenn ein anderes Problem vorliegt, z. B. das vom OP angegebene, ist das Bild weiterhin vorhanden. Mit dem Befehl können Sie überprüfen, ob das Bild noch vorhanden istdocker images ls --all
.Alle vorherigen Antworten sind korrekt, aber hier ist eine Lösung, bei der nur alle Ihre Bilder gewaltsam gelöscht werden ( verwenden Sie diesen Befehl auf eigenes Risiko, um alle Ihre Bilder zu löschen ).
quelle
docker image rm $(docker image ls -a -q) -f
Suchen Sie die Bild-ID und die übergeordnete ID für alle Bilder, die nach dem betreffenden Bild erstellt wurden, wie folgt:
Dann rufen Sie den Befehl auf:
"sub_image_id" ist die ID des abhängigen Bildes
quelle
Was für mich funktioniert hat, war die Verwendung der Kombination REPOSITORY: TAG anstelle der IMAGE ID.
Als ich versuchte, ein Docker-Image mit dem Befehl zu löschen,
docker rmi <IMAGE ID>
ohne dass diesem Image Container zugeordnet waren, hatte ich die folgende Meldung:Ich konnte mit Erfolg löschen, wenn ich den Befehl verwendete
docker rmi RPOSITORY:TAG
quelle
docker rmi 93fd78260bd1
fehlgeschlagen, war danndocker tag 93fd78260bd1 ubuntu:temp && docker rmi ubuntu:temp
aber erfolgreich.Untagged: ubuntu:18.04v1
). Wenn Sie dies tundocker images -a
, werden Sie wahrscheinlich3f66bec2c6bf
immer noch aufgelistet sehen. Wenn das Bild wirklich gelöscht würde, würden Sie die Nachricht erhaltenDeleted: 3f66bec2c6bf
DIESER BEFEHL ENTFERNT ALLE BILDER (MIT VORSICHT VERWENDEN)
Haben Sie versucht, --force zu verwenden?
Dieser obige Code läuft wie ein Zauber, selbst wenn ich das gleiche Problem hatte
quelle
Die Antwort hier ist, alle Nachkommen zu finden, die hier eine Antwort haben:
Docker Wie kann ich die Liste der abhängigen untergeordneten Bilder erhalten?
Verwenden Sie dies dann, um die untergeordneten Bilder der Reihe nach zu entfernen.
quelle
Hier ist ein Skript zum Entfernen eines Bildes und aller davon abhängigen Bilder.
quelle
Verwenden Sie danach den Befehl, wie von Nguyen vorgeschlagen.
quelle
Aufbauend auf Simon Brady Brute - Force - Methode hier , wenn Sie Sie diese Shell - Funktion verwenden können , nicht eine Tonne Bilder haben:
und nenne es dann mit
recursive_remove_image <image-id>
.quelle
Ex:
quelle
Wenn ich ein nicht verwendetes Bild mit Namen
"<none>"
im Docker entfernen möchte, habe ich das Problem.unable to delete a354bbc7c9b7 (cannot be forced) - image has dependent child images
So lösen Sie dieses Problem:Sie können sehen, dass ich mehrere Bilder mit dem Namen JavaApp habe: neuesten und anderen Containernamen. Also habe ich alle Container von "javaapp: latest" Container getötet und entfernt mit:
Dann
So kann ich alle Bilder mit Namen entfernen
"<none>"
Viel Glück
quelle
Ich habe auch dieses Problem, ich konnte das Problem mit den folgenden Befehlen beheben. Dies kann daran liegen, dass der Container des Bildes ausgeführt wird oder beendet wird. Bevor Sie das Bild entfernen, müssen Sie den Container entfernen
Docker ps -a -f status = beendet: Dieser Befehl zeigt alle verlassenen Container an. Kopieren Sie dann die Container-ID und führen Sie die folgenden Befehle aus, um den Container zu entfernen
docker rm #containerId: Dieser Befehl Container entfernen Dies kann ein Problem sein, das erwähnt, dass "Bild abhängige untergeordnete Bilder hat"
Versuchen Sie dann, das Bild mit dem folgenden Befehl zu entfernen
Docker rmi #ImageId
quelle
Ich hatte dieses Problem und keine der kurzen Antworten hier funktionierte, selbst auf der von @tudor oben erwähnten Seite. Ich dachte, ich würde hier erzählen, wie ich die Bilder losgeworden bin. Ich kam auf die Idee, dass abhängige Bilder> = die Größe des übergeordneten Bildes haben müssen, was hilft, es zu identifizieren, damit wir es entfernen können.
Ich habe die Bilder in der Reihenfolge ihrer Größe aufgelistet, um festzustellen, ob ich Korrelationen feststellen konnte:
Verwenden Sie dazu eine spezielle Formatierung vom Docker, um zuerst die Bildgrößenspalte zu positionieren, und führen Sie dann eine für Menschen lesbare Sortierung in umgekehrter Reihenfolge aus. Dann stelle ich die einfach zu lesenden Spalten wieder her.
Dann schaute ich mir die
<none>
Container an und passte den ersten in der Liste mit einer ähnlichen Größe an. Ich habe ein einfachesdocker rmi <image:tag>
Bild erstellt und alle<none>
Kinderbilder waren damit verbunden.Das Problembild mit allen Kinderbildern war eigentlich das verdammte
myrepo/getstarted-lab
Bild, das ich verwendet habe, als ich anfing, mit Docker zu spielen. Das lag daran, dass ich aus dem ersten Testbild, mit dem die Kette erstellt wurde, ein neues Bild erstellt hatte.Hoffentlich hilft das irgendwann jemand anderem.
quelle
Angenommen, wir haben eine Docker-Datei
Wir bauen daraus ein Bild ohne TAG oder Benennung
Jetzt haben wir einen Erfolgsbericht "Erfolgreich erstellt 57ca5ce94d04" Wenn wir die Docker-Bilder sehen
Wir müssen zuerst die entfernen
docker rmi 57ca5ce94d04
gefolgt von
Dadurch wird das Bild entfernt!
Eine erzwungene Entfernung aller, wie von jemandem vorgeschlagen
quelle
Erweitern Sie die Antwort von @Nguyen - diese Funktion kann zu Ihrem
.bashrc
usw. hinzugefügt und dann über die Befehlszeile aufgerufen werden, umimage has dependent child images
Fehler zu beseitigen ...Sie können die Funktion als Sie selbst ausführen. Wenn a
docker ps
fehlschlägt, wird derdocker
Befehl mit ausgeführtsudo
und Sie werden zur Eingabe Ihres Kennworts aufgefordert.Hat NICHT löschen Bilder für alle laufenden Container!
Ich habe das auch in meiner
.bashrc
Akte ...Arbeitet mit:
quelle
Löschen einer Bildliste erzwingen (z. B. Version 10 ausschließen)
quelle
Sie können dies einfach tun:
➜ ~ sudo Docker rmi 4ed13257bb55 -f Deleted: sha256: 4ed13257bb5512b975b316ef482592482ca54018a7728ea1fc387e873a68c358 Deleted: sha256: 4a478ca02e8d2336595dcbed9c4ce034cd15f01229733e7d93a83fbb3a9026d3 Deleted: sha256: 96df41d1ce6065cf75d05873fb1f9ea9fed0ca86addcfcec7722200ed3484c69 Deleted: sha256: d95efe864c7096c38757b80fddad12819fffd68ac3cc73333ebffaa42385fded
quelle
Bildebene: Repositorys werden häufig als Bilder oder Containerbilder bezeichnet, bestehen jedoch aus einer oder mehreren Ebenen. Bildebenen in einem Repository sind in einer Eltern-Kind-Beziehung miteinander verbunden. Jede Bildebene repräsentiert Änderungen zwischen sich und der übergeordneten Ebene.
Das Docker-Gebäudemuster verwendet die Vererbung . Dies bedeutet, dass die Version
i
von der Version abhängti-1
. Wir müssen also die Version löschen, um die Version löscheni+1
zu könneni
. Dies ist eine einfache Abhängigkeit.Wenn Sie alle Bilder außer dem letzten (das aktuellste) und dem ersten (Basis) löschen möchten, können Sie das letzte (das aktuellste) mit dem folgenden
docker save
Befehl exportieren .Löschen Sie dann jetzt alle Bilder mit der unten angegebenen Bild-ID .
Laden Sie nun Ihr gespeichertes TGZ-Bild wie folgt.
Zeigen Sie die Image-ID Ihres geladenen Images mit Docker ps -q an. Es hat kein Tag und keinen Namen. Sie können Tag und Name einfach wie unten beschrieben aktualisieren.
quelle