如何通过Docker的Images-Prune命令高效清理悬空镜像?
- 内容介绍
- 文章标签
- 相关推荐
本文共计582个文字,预计阅读时间需要3分钟。
在 Docker 中,悬空镜像(dangling images)是指那些没有标签(untagged)且未被任何容器或镜像引用的中间层镜像。通常表示为:
什么是虚悬镜像?
虚悬镜像是构建过程中产生的未被最终镜像引用的中间层,常见于以下情况:
- 使用
docker build重新构建同名镜像后,旧的未打标签层变为 dangling - 手动删除了某个镜像的 tag,但底层 layer 未被其他镜像复用
- Docker 1.13+ 默认启用内容寻址存储(CAS),layer 独立管理,更容易产生 dangling 状态
执行一键清理:docker image prune
运行以下命令即可安全清理所有虚悬镜像:
docker image prune
该命令默认只删除 dangling=true 的镜像(即虚悬镜像),不会影响带标签的镜像或正在运行的容器所依赖的镜像。
如需跳过确认提示,添加 -f 或 --force 参数:
docker image prune -f
进阶清理选项(按需使用)
如果还需清理其他类型资源,可组合使用以下参数:
-
--all或-a:同时清理所有未被任何镜像引用的“悬空+未使用”镜像(含带标签但未被容器/其他镜像引用的镜像)——慎用,可能误删有用镜像 -
--filter "until=24h":仅清理 24 小时内创建的虚悬镜像(需 Docker 17.06+) - 搭配
docker system prune可一并清理停止的容器、网络、构建缓存等(同样支持-f和--all)
验证清理结果
清理前后可用以下命令对比虚悬镜像数量:
docker images -f "dangling=true"
若输出为空,说明已无虚悬镜像。也可用 docker system df 查看镜像、容器、本地卷等整体磁盘占用变化。
本文共计582个文字,预计阅读时间需要3分钟。
在 Docker 中,悬空镜像(dangling images)是指那些没有标签(untagged)且未被任何容器或镜像引用的中间层镜像。通常表示为:
什么是虚悬镜像?
虚悬镜像是构建过程中产生的未被最终镜像引用的中间层,常见于以下情况:
- 使用
docker build重新构建同名镜像后,旧的未打标签层变为 dangling - 手动删除了某个镜像的 tag,但底层 layer 未被其他镜像复用
- Docker 1.13+ 默认启用内容寻址存储(CAS),layer 独立管理,更容易产生 dangling 状态
执行一键清理:docker image prune
运行以下命令即可安全清理所有虚悬镜像:
docker image prune
该命令默认只删除 dangling=true 的镜像(即虚悬镜像),不会影响带标签的镜像或正在运行的容器所依赖的镜像。
如需跳过确认提示,添加 -f 或 --force 参数:
docker image prune -f
进阶清理选项(按需使用)
如果还需清理其他类型资源,可组合使用以下参数:
-
--all或-a:同时清理所有未被任何镜像引用的“悬空+未使用”镜像(含带标签但未被容器/其他镜像引用的镜像)——慎用,可能误删有用镜像 -
--filter "until=24h":仅清理 24 小时内创建的虚悬镜像(需 Docker 17.06+) - 搭配
docker system prune可一并清理停止的容器、网络、构建缓存等(同样支持-f和--all)
验证清理结果
清理前后可用以下命令对比虚悬镜像数量:
docker images -f "dangling=true"
若输出为空,说明已无虚悬镜像。也可用 docker system df 查看镜像、容器、本地卷等整体磁盘占用变化。

