在使用 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

推荐阅读:

  • 计算机经典书籍(含下载方式)
  • 技术博客 硬核后端技术干货,内容包括 Python、Django、Docker、Go、Redis、ElasticSearch、Kafka、Linux 等。
  • Go 程序员 Go 学习路线图,包括基础专栏,进阶专栏,源码阅读,实战开发,面试刷题,必读书单等一系列资源。
  • 面试题汇总 包括 Python、Go、Redis、MySQL、Kafka、数据结构、算法、编程、网络等各种常考题。

alwaysbeta
84 声望13 粉丝