Kleaner PRO

为 Windows 7/10/11 提供专业维护工具。

用心打造,为性能而生。

关注我们
产品
  • Kleaner PRO
  • 商店
  • 激活门户
  • Kleaner PRO 更新内容
  • 更多产品即将推出
资源
  • 功能
  • 常见问题
  • Compare tools
  • 知识库
  • Blog
  • 下载
  • Kleaner SafeCheck
  • 存储空间规划
法律信息
  • 许可协议
  • 服务条款
  • 隐私政策
  • 退款政策
[email protected]Telegram 支持 @Vladimlrovlch
© 2026 Kleaner PRO · kleaner.pro. 保留所有权利。
支付方式
ЮMoneyVisaMastercardМИРPayPalWebMoneyUseGatewayBitcoinEthereumUSDT
Kleaner PRO
功能智能维护价格常见问题知识库Blog下载
服务▾
Kleaner SafeCheck本地 SHA-256 · VirusTotal 报告查询存储空间规划免费 Windows 工具
激活
功能智能维护价格常见问题知识库Blog下载
服务Kleaner SafeCheck · SHA-256存储空间规划
激活
购买购买许可证
Blog →5 分钟阅读2024-08-20· Kleaner PRO 团队

Docker Desktop 与 WSL2:驯服不断膨胀的 VHDX

你删掉了一半镜像,Docker 却一个字节都没还给你:C: 盘上的虚拟盘依然稳稳当当躺在 80 GB。这是设计使然——动态 VHDX 文件按需增长,从不自动收缩——所以解决办法是固定的两步:先清理 Docker 内部,再压缩那个文件。

GB 到底藏在哪里

WSL2 上的 Docker Desktop 把一切——镜像、容器、卷、构建缓存——都放在特殊的 WSL 发行版里,每个发行版以单个动态 VHDX 文件的形式躺在 C: 盘上。每次 pull 都会加层,每次构建都会加缓存,而删除任何东西只释放 Linux 文件系统内部的空间:宿主机上的文件仍停在最高水位线上。你自己装的 Ubuntu 或 Debian 发行版也用各自的 ext4.vhdx 玩同一套把戏,而且这些在“大文件夹”猎捕行动中一无所获——因为对 Windows 来说,它们只是几个不透明的文件。

  • docker-desktop-data(旧版 Docker)或 docker_data.vhdx(新版):%LOCALAPPDATA%\Docker\wsl 下 30–80 GB 的头号大户——镜像、容器、卷、构建缓存
  • docker-desktop:跑 Docker 引擎本身的小型系统发行版
  • 你自己的 WSL2 发行版:每个都在 %LOCALAPPDATA%\Packages\...\LocalState 下有一个 ext4.vhdx
  • 构建缓存:即使删掉最终镜像,docker builder 仍保留中间层
  • 悬空镜像和已停止的容器:被中断的构建与拉取留下的孤儿层
  • 匿名卷:compose 文件每次构建时悄悄创建,连 docker image prune 都清不掉

先清理内部——压缩一个脏盘是白费功夫

压缩一个塞满死镜像的 VHDX,只会得到一个下周又重新膨胀的小文件,所以操作顺序很重要。从内部开始:docker system df 显示镜像、容器、卷和缓存实际占了多少,这些数字通常让人吃惊。docker system prune -a 删除未使用镜像和已停止的容器,--volumes 连孤儿卷一起带上——确认你没删掉自己真想要的数据库数据。接着 docker builder prune 清掉反复重建最爱撑大的构建缓存;只有当 docker system df 报出一个你能接受的数字时,才值得去动宿主机上的文件。

然后缩小磁盘:三种受支持的方法

先运行 wsl --shutdown,否则文件会被运行中的容器和发行版锁定。在较新的 WSL 版本上,wsl --manage <发行版> --set-sparse true 会把 VHDX 标记为稀疏文件,让 Windows 回收空闲块;在旧环境里,可靠的路子是导出再导入——wsl --export 导出为 .tar,wsl --unregister 注销,wsl --import 导入到新文件夹——文件会按真实数据大小重建。Docker Desktop 还能在 Settings > Resources > Advanced 里把整个磁盘镜像搬到另一个驱动器,并自动迁移数据——当 C: 盘对你的工作来说就是太小时,这是老实的解决办法。既然到了那里,顺便给增长设个上限:同一设置页里有磁盘大小限制,而每月看一眼 docker system df 的习惯能让你守住它。

常见问题与解答

Docker Desktop 为什么占这么多磁盘空间?

Docker 把每个镜像、层、卷和构建缓存条目都放在一个按需增长、从不自动收缩的动态 VHDX 里。用 docker system df 查看明细,清理不需要的,然后压缩或导出/导入磁盘。

怎么缩小 WSL2 的 Docker VHDX 文件?

先运行 wsl --shutdown,然后用 wsl --manage <发行版> --set-sparse true 把磁盘设为稀疏,或者把发行版导出为 .tar、注销后重新导入——新的 VHDX 会与你的真实数据大小一致。

购买前,请先了解许可证包含的内容。

一次性的 30 分钟试用仅包含基础工具。PRO 功能需激活付费许可证后才能使用。

下载 Windows 版购买许可证

继续阅读

VHDX是什么:蚕食真实空间的虚拟磁盘→WSL1与WSL2:同一只企鹅,两种天差地别的磁盘账单→为什么C盘总是莫名其妙又满了→12招释放C盘空间,不删任何重要文件→

联系我们: [email protected]

简体中文
EnglishРусскийУкраїнськаDeutschEspañolFrançaisPortuguês (BR)PolskiItalianoTürkçe日本語简体中文