电脑帮手
柔彩主题三 · 更轻盈的阅读体验

Docker容器磁盘空间清理,别让小东西吃掉你的C盘

发布时间:2025-12-17 03:13:36 阅读:330 次

ref="/tag/2019/" style="color:#479099;font-weight:bold;">Docker的人大多都遇到过这种情况:明明没装几个服务,系统盘却突然告急。打开一看,C盘少了十几个GB,罪魁祸首往往就是那些默默运行的容器和它们留下的“垃圾”。

为什么Docker会占用这么多空间?

Docker在运行过程中会产生几类数据:镜像(images)、容器(containers)、卷(volumes)和构建缓存(build cache)。每次pull镜像、启动容器、重启服务,都会留下痕迹。尤其是频繁测试或开发时,旧的镜像删不干净,停止的容器还占着地盘,久而久之空间就被耗光了。

查看当前磁盘使用情况

先别急着删,搞清楚谁在占空间更重要。执行下面命令看看Docker的资源占用:

docker system df

输出结果会列出镜像、容器、卷和缓存的使用量,一目了然。比如你可能发现“<none>”标签的悬空镜像占了快5GB,这些就是该清理的目标。

一键清理未使用的资源

Docker自带一个“大扫除”命令,能自动清除所有未被使用的对象:

docker system prune -a

这个命令会删掉所有停止的容器、未被引用的镜像、构建缓存以及网络。加了 -a 参数后连没在用的镜像也会清掉,效果更彻底。执行前会提示确认,不用担心误删正在跑的服务。

单独处理积压的容器和镜像

如果你只想针对性清理,可以分步操作。比如删掉所有已停止的容器:

docker container prune

删除没有标签或没被任何容器引用的镜像:

docker image prune -a

这些命令更温和,适合日常维护,不会影响正在运行的服务。

别忘了清理 volumes

很多人忽略了 volumes,它们是独立于容器存在的数据卷,即使容器删了,数据还在硬盘上。长期积累下来可能比镜像还占地方。

查看所有卷的使用情况:

docker volume ls

删除不用的卷:

docker volume prune

如果某个项目已经废弃,对应的数据卷完全可以一起清掉,省出大量空间。

养成好习惯,避免空间再次爆满

开发中经常 build 新镜像,容易产生一堆临时层。建议在构建时加上 --rm 参数,让中间层自动清理:

docker build --rm=true -t myapp .

另外,定期执行一次 docker system prune,就像给电脑做磁盘清理一样,保持环境清爽。

下次再看到C盘红了,先别慌着卸软件,查查Docker是不是在偷偷“囤货”。几分钟的清理,很可能就能腾出几个GB的空间。