Ich habe die folgenden Bilder:
alex@alexvps:~$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
<none> <none> 70c0e19168cf 5 days ago 1.069 GB
<none> <none> c2ce80b62174 8 days ago 399.2 MB
<none> <none> 60afe4036d97 8 days ago 325.1 MB
und wenn ich versuche, eines von ihnen zu entfernen, erhalte ich:
alex@alexvps:~$ sudo docker rmi 60afe4036d97
Error: Conflict, 60afe4036d97 wasn't deleted
2014/01/28 00:54:00 Error: failed to remove one or more images
Wie kann ich sie entfernen? Warum gibt es einen solchen Konflikt?
Möglicher Grund: Der Grund dafür kann sein, dass dieses Image gerade von einem laufenden Container verwendet wird. In einem solchen Fall können Sie die laufenden Container auflisten, den betreffenden Container stoppen und dann das Bild entfernen:
docker ps
docker stop <containerid>
docker rm <containerid>
docker rmi <imageid>
Wenn Sie den Container nicht mit docker ps finden können, können Sie dies verwenden, um alle bereits beendeten Container aufzulisten und sie zu entfernen.
docker ps -a | grep 60afe4036d97
docker rm <containerid>
Hinweis: Seien Sie vorsichtig, alle beendeten Container auf einmal zu löschen, wenn Sie Volume-Only
-Container verwenden. Diese bleiben im `Exit'-Zustand, aber enthalten nützliche Daten.
In Bash:
for i in `sudo docker images|grep \<none\>|awk '{print $3}'`;do sudo docker rmi $i;done
Dies wird alle Bilder mit dem Namen "
Sie müssen zuerst alle unnötigen Container stoppen/löschen, die auf diesem Image erstellt wurden.
Schauen Sie nach: https://stackoverflow.com/questions/17236796/how-to-remove-old-docker-io-containers.
Danach verwenden Sie die Lösung von @marcell.