WSL2磁盘空间告急?3步搞定Docker镜像清理与vhdx压缩(附常见问题排查)
当你在Windows上使用WSL2运行Docker时,是否遇到过C盘空间突然告急的情况?即使删除了大量Docker镜像,磁盘空间依然没有释放。这背后隐藏着WSL2虚拟磁盘的"膨胀"机制——它像气球一样会不断变大,却不会自动缩小。本文将带你深入理解这一现象,并提供一套完整的解决方案。
1. 为什么删除Docker镜像后空间不释放?
WSL2采用虚拟化技术运行Linux内核,其文件系统存储在一个名为ext4.vhdx的虚拟磁盘文件中。这个文件设计上有两个关键特性:
- 自动扩容:当WSL2中的文件增加时,vhdx文件会自动扩展大小
- 不自动缩容:删除文件后,vhdx文件不会自动收缩
这就解释了为什么即使执行了docker system prune清理镜像,Windows磁盘管理器显示的占用空间依然没有变化。实际上,空间已经在WSL2内部释放,但vhdx文件仍然保持着之前的"膨胀"状态。
常见误区:
- 认为重启电脑可以解决问题(实际上无效)
- 误以为清空Windows回收站能释放空间(WSL2没有回收站机制)
- 认为Docker Desktop的清理功能会自动压缩vhdx(目前不会)
2. 完整解决方案:三步走策略
2.1 第一步:彻底清理Docker无用资源
在开始压缩前,必须确保WSL2内部确实有可回收的空间。打开PowerShell或WSL终端,执行以下清理命令:
# 清理停止的容器、无用网络和悬空镜像
docker system prune
# 清理构建缓存(这是很多人忽略的重要步骤)
docker builder prune
# 可选:彻底清理所有未被使用的镜像(包括被
994



被折叠的 条评论
为什么被折叠?



