Docker 占用导致 C 盘空间不足的排查与解决

在日常开发中,Docker 的确给我们带来了极大的便利。但最近我遇到一个棘手的问题:C 盘空间突然告急。起初我以为只是临时文件太多,结果一番折腾后才发现,罪魁祸首竟然是 Docker。本文记录了整个排查过程,希望能给遇到类似问题的朋友一些参考。


🐞 问题出现:C 盘空间告急

某天打开电脑时,系统不断提示 C 盘空间不足 。检查后发现只剩下不到 1GB 的可用空间,严重影响了日常使用。由于我平时习惯把项目、资料都放在 D 盘,C 盘基本只装系统和必要软件,所以一开始很疑惑:到底是谁在偷偷吃掉我的空间?


🔍 初步排查:走了不少弯路

第一反应当然是清理垃圾文件:

  • 使用 Windows 自带的"磁盘清理"工具,删除了临时文件、更新缓存。
  • 检查浏览器缓存、下载目录,清理了不少无关文件。
  • 甚至怀疑是某些软件日志无限增长,于是逐个翻查。

但是一顿扫描以后,我发现它的占用也才几百M,但是我意识到我的电脑绝对不仅仅是被这些文件所影响的,我先清理了这些文件,清理完后,C 盘空间确实释放了一点,但很快又被占满。显然,这些都不是根本原因。


📊 使用磁盘分析工具:真相浮出水面

为了更直观地看到空间分布,我查阅了几篇资料以后,发现SpaceSniffer 可以分析系统具体哪个资源的占用情况以及占用的内存大小,于是我安装了 SpaceSniffer 磁盘分析工具。扫描 C 盘后,结果让我大吃一惊:

  • C:\Users\User\AppData\Local\Docker 文件夹占用了几十个 GB!
  • 此刻我意识到罪魁祸首应该就是docker_data_vhdx文件了,后面我就搜了一下这个文件的由来,大概说的是 Docker Desktop 的虚拟磁盘文件,里面存放了镜像和容器数据。
  • 其中包含了大量的 镜像文件 、容器数据 以及 构建缓存。

这才恍然大悟:原来 Docker 默认把数据存放在 C 盘,而我平时拉取的镜像、运行、构建到服务器中的的容器都在这里悄悄堆积。

后面我经过查阅文章,docker system df 命令可以查询到镜像和容器占用多少

bash 复制代码
TYPE TOTAL ACTIVE SIZE RECLAIMABLE
Images 12 1 1.16GB 1.003GB (86%)
Containers 1 0 0B 0B
Local Volumes 2 0 113kB 113kB (100%)
Build Cache 452 0 92.77GB 92.77GB

一看构建缓存占了92.77G 于是赶紧采取应对策略


🛠️ 解决方案:调整 Docker 存储位置

既然找到了根因,接下来就是解决问题。思路很简单:把 Docker 的数据目录迁移到 D 盘。

步骤如下:

  1. 打开docker desktop首页
  2. 进入设置界面
  3. 选择到Resources
  4. 调整Docker临时文件位置,这里没设置的时候是默认的位置

稍微等待一会,如果你的C盘和我一样的占用,那么就可以重新查看文件资源管理器了,C盘空间被释放了。


✅ 总结

这次经历让我意识到:

  • 不要盲目清理,遇到磁盘问题时,借助分析工具能快速定位大文件夹。
  • Docker 默认把数据放在 C 盘,如果镜像和容器较多,很容易撑爆系统盘。
相关推荐
强哥聊算力28 分钟前
《算力江湖·DeepSeek》第四集:DeepSeek如何改变中国算力的采购逻辑?
大数据·运维·人工智能·ai·gpu算力
承渊政道1 小时前
新增一台服务器时还要重新装Nginx?Ansible只改hosts目标列表,同一份Playbook继续执行
运维·nginx·ansible·内网穿透·cpolar
德迅云安全-上官1 小时前
服务器遭攻击如何快速响应?从技术原理到接入防御架构的实战指南
运维·服务器·架构
我命由我123451 小时前
6-2.Python 异常处理 - 异常捕获(捕获指定异常、常见异常类型、异常信息)
java·运维·开发语言·python·http·https·java-ee
A-刘晨阳1 小时前
同一句需求优化前后差多少?Prompt Optimizer先整理提示词,再用同一个模型直接对比结果
运维·prompt·cpolar
李纲明2 小时前
WordPress 结账页一直转圈不跳支付:AJAX、缓存排除、支付回调和 REST 怎么逐层核
运维·ajax·缓存·wordpress·woocommerce·devdiy·结账
fengkai45452 小时前
7、Kubernetes的Ingress&Network&Scheduler
运维·kubernetes·k8s·ingress·network·scheduler
码农客栈2 小时前
mt7601u移植
linux·运维·服务器
可涵不会debug2 小时前
超级马里奥常驻极空间以后怎么打开?Docker运行游戏页面,手机电脑都能从浏览器进入
游戏·docker·智能手机
2601_949847752 小时前
io-ts 跨端三方库仓颉适配全流程
linux·运维·ubuntu