因为尝试使用新的镜像,对原来的镜像进行删除,报错如下:
意思就是在删除镜像之前,要先删除对应的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 显示容器大小
所以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