docker system prune vs image dangling区别及关系

docker system prunedangling 是有关 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 额外清理无挂载的卷