Behebung von docker 'unable to delete ...- image is being used by running container'
Problem:
Du möchtest ein Docker-Image mit einem Befehl wie diesem löschen
docker image rm c91b419ac445aber du siehst eine Fehlermeldung wie
Error response from daemon: conflict: unable to delete c91b419ac445 (cannot be forced) - image is being used by running container 3477a4dcdce2Lösung
Es läuft derzeit ein Container, der das Image verwendet, das du zu löschen versuchst. Wir werden dieses Problem lösen, indem wir zuerst den Container stoppen und dann das Image löschen
Warnung: Das Löschen des Images ist gefährlich, da du das Löschen des Images nicht rückgängig machen kannst! Beachte auch, dass das erzwungene Stoppen eines laufenden Containers zu Datenverlust führen kann, wenn dieser Container etwas Wichtiges tut!
Führe diese Befehle aus, um den Container zu stoppen und das Image zu löschen:
# Container erzwingt stoppen
docker container rm --force <container ID>
# Image löschen
docker image rm <image ID>Kopiere <container ID> vom Ende deiner ursprünglichen Fehlermeldung (3477a4dcdce2 in meinem Beispiel).
Kopiere <image ID> vom Anfang deiner Fehlermeldung. Dies ist dieselbe Image-ID, die du ursprünglich löschen wolltest (c91b419ac445) in meinem Beispiel.
In meinem Beispiel wäre der Befehl
# Container erzwingt stoppen
docker container rm --force 3477a4dcdce2
# Image löschen
docker image rm c91b419ac445Beachte, dass möglicherweise mehrere Container laufen, die dieses Image verwenden, also wenn du weiterhin eine ähnliche Fehlermeldung erhältst, musst du diesen Befehl möglicherweise wiederholen.
Hintergrundinformationen:
Docker wird dir nicht erlauben, das Image mit force zu löschen, indem du
docker image rm c91b419ac445 --forcewie du auch aus der Klausel (cannot be forced) deiner ursprünglichen Fehlermeldung sehen kannst. Dieses Verhalten ist sinnvoll, da der Container auf undefinierbare Weise abstürzen würde, wenn das zugrundeliegende Image gelöscht wird.
Note that we could use docker image rm --force after stopping the container but this is typically not required and might result in additional risks for other containers, e.g. if other images depend on said image. Since docker uses layered images. Read the background information section of our post Docker: Remove all images and containers to learn more about how docker images work from an image management perspective.