docker system prune vs image dangling区别及关系
docker system prune 和 dangling 是有关 Docker 清理无用资源的两个相关概念。
1.docker system prune 是什么?
这个命令是 清理 Docker 无用资源的一键式命令,会清除以下内容:
- 停止的容器(Exited)
- 未使用的网络
- 悬挂的(dangling)镜像
- 构建缓存
- 未挂载的 volumes(需要加
--volumes)
1.1.基本用法:
1 | docker system prune |
它会问你是否继续,自动清理这些无用资源。
1.2.强制执行:
1 | docker system prune -f |
1.3.包括未挂载 volume:
1 | docker system prune --volumes |
2.什么是 dangling 镜像?
“Dangling” 镜像是指:
没有 tag 的镜像,通常是构建过程中中间生成的、旧的镜像。
你可以通过以下命令看到它们:
1 | docker images -f "dangling=true" |
输出示例:
<none> <none> abcdef123456 ...
这些 <none> 镜像就是悬挂镜像(dangling images),不再被任何容器使用。
3.只清理 dangling 镜像?
如果你只想清理 dangling 镜像,可以:
1 | docker image prune |
或者加 -f 跳过确认:
1 | docker image prune -f |
它其实等价于:
1 | docker rmi $(docker images -f "dangling=true" -q) |
4.小结
| 操作 | 说明 |
|---|---|
docker system prune |
清理系统中无用资源(容器、网络、dangling 镜像等) |
docker image prune |
只清理 dangling 镜像 |
-f |
跳过确认 |
--volumes |
额外清理无挂载的卷 |