Behebung von docker 'unable to delete ...- image is being used by running container'

English Deutsch

Problem:

Du möchtest ein Docker-Image mit einem Befehl wie diesem löschen

docker-image-rm.sh
docker image rm c91b419ac445

aber du siehst eine Fehlermeldung wie

docker-error.txt
Error response from daemon: conflict: unable to delete c91b419ac445 (cannot be forced) - image is being used by running container 3477a4dcdce2

Lö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:

stop-and-delete-image.sh
# 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

stop-and-delete-image-example.sh
# Container erzwingt stoppen
docker container rm --force 3477a4dcdce2
# Image löschen
docker image rm c91b419ac445

Beachte, 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-force.sh
docker image rm c91b419ac445 --force

wie 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.


Check out similar posts by category: Container, Docker