因為嘗試使用新的鏡像,對原來的鏡像進行刪除,報錯如下:
意思就是在刪除鏡像之前,要先刪除對應的docker.因為該image被對應的container引用,所以image刪除失敗。
顯示所有狀態的容器 docker ps -a / docker container ls -a
然后清理所有終止狀態的容器 docker container prune
然后刪除鏡像
也可以根據提示來的,加-f強制刪除鏡像。
順便提一下,docker命令:
1.docker rm <容器ID或容器名>
2.docker stop<容器ID或容器名>
引申:1.如何刪除所有容器;2.如何刪除所有容器鏡像,3.在創建鏡像時會產生很多的中間鏡像,這部分鏡像是一起刪除的嗎?none鏡像?
1. docker rm $(docker ps -q) 可以刪除所有容器
這里docker ps 的命令包括:
1)-a 列出所有容器
2)-l 列出最新創建容器
3)-n=2 列出最近創建的2個容器
4)-q 僅列出容器ID
5)-s 顯示容器大小
6) rm -f 強制刪除
所以docker ps -aq 相當於列出所有的容器ID,然后docker rm它們
但是要注意的是,如果容器正在運行是無法刪除,需要先停止:
docker stop $(docker ps -aq)
2.刪除鏡像也如此
docker rmi $(docker ps -aq) 或者 docker image rm 選項(id ,名字....)
3.如果想要刪除沒有打tag的none鏡像:
Docker rmi $(docker images -a|grep none|awk '{print $3}')
也可以寫成:
docker ps -a |grep none }awk '{print $1}'|xargs docker rmi
通過xagrs傳入參數
有些什么情況會產生none的鏡像?
1)在鏡像創建過程中創建失敗,會產生無效的none鏡像
2)pull鏡像。鏡像的垂直父子關系
3)使用dockerfile文件創建鏡像,重新生成,新的鏡像名賦給后者,前面的鏡像名字為none