在使用 docker images
命令的时候,经常会在列表中看到 <none>:<none>
的镜像。
这种镜像在 Docker 官方文档中被称作 dangling images,指的是没有标签并且没有被容器使用的镜像。
当 docker build
或者 docker pull
新镜像的时候,如果之前已经存在了,涉及到镜像版本更新的话,那么之前的镜像就变成了临时镜像,也就是 <none>:<none>
镜像。
删除 dangling 镜像:
docker image prune
或者:
docker rmi $(docker images -f "dangling=true" -q)
如果镜像被容器引用了,是不能直接删除的,需要先删除容器。
# 删除容器 docker rm $(docker ps -a | grep "Exited" | awk '{print $1}') # 删除 images docker rmi $(docker images | grep "none" | awk '{print $3}')
或者:
docker ps -a | grep "Exited" | awk '{print $1}'| xargs docker rm docker images | grep none | awk '{print $3}'| xargs docker rmi