如何清理docker占用的磁盘空间? system prune怎么用?

docker system prune 命令主要用于清理 docker 中未被使用的资源,包括所有停止状态的容器、无名镜像、未被使用的网络和构建缓存,默认不会影响正在运行的容器、数据卷或已有标签的镜像;1. 默认清理内容:停止的容器、dangling 镜像、未用网络、构建缓存;2. 加 –all 或 -a 可清理所有未被引用的镜像;3. 清理时可加 -f 强制执行;4. 配合 docker volume prune、docker image prune -a、docker rm -f 等命令可更彻底释放空间;5. 定期使用 docker system df 查看磁盘占用情况,有助于及时清理。

如何清理docker占用的磁盘空间? system prune怎么用?

Docker用久了,系统盘空间很容易被撑爆。特别是开发测试环境,镜像、容器、卷这些内容积累起来非常快。system prune 是一个快速清理 Docker 占用空间的命令,但它的作用范围和使用方式你得搞清楚,不然容易误删。

一、docker system prune 能清理什么?

简单来说,docker system prune 的作用是清理“未被使用的”资源。默认情况下,它会清理以下内容:

  • 所有停止状态的容器
  • 构建过程中产生的无名(dangling)镜像
  • 没有被任何容器使用的网络
  • 构建缓存

执行命令很简单:

docker system prune

运行后会让你确认是否继续,输入 y 就开始清理。

注意:这个操作不会影响正在运行的容器、已有数据卷或已打标签的镜像。

如果你不希望每次都要确认,可以加上 -f 参数强制执行:

docker system prune -f

二、想清得更彻底?加个 –all

上面说的只是默认清理范围。如果你想连那些没有在用的镜像也一起删掉,可以用 –all 或简写 -a 参数:

docker system prune -a

这时候所有没被容器引用的镜像都会被清除,包括你很久以前拉下来的那些“备用”镜像。这个操作更狠,也更容易误删,建议提前确认哪些镜像是可以舍弃的。

三、清理磁盘不只是靠 system prune

虽然 system prune 很方便,但它并不能解决所有磁盘占用问题。比如:

  • 数据卷(volumes):不会被自动清理,即使容器已经删了,卷还在。
  • 日志文件:Docker 容器的日志可能会非常大,尤其是长时间运行的服务。
  • 旧版本镜像残留:有时候同一个镜像 tag 被覆盖了,旧层可能还留着。

所以你可以结合几个其他命令一起使用:

查看磁盘使用情况:

docker system df

这个命令能让你看清当前 Docker 各类资源占用了多少空间。

清理无主卷:

docker volume prune

清理所有未使用镜像:

docker image prune -a

删除所有容器(慎用):

docker rm -f $(docker ps -aq)

这些命令配合使用,才能真正把空间腾出来。


基本上就这些。平时记得定期清理,尤其是一些临时构建的环境,别等到磁盘满了才想起这事。

© 版权声明
THE END
喜欢就支持一下吧
点赞6 分享