使用 Docker 一段时间后,会残留大量中间镜像,占用磁盘空间。很多小伙伴把 Docker 装在 C 盘,结果导致 C 盘空间频繁告急。
网上常见的方法大致如下:
-
关闭 WSL2 实例
wsl --shutdown -
使用 Windows 自带的 diskpart 工具压缩 vhdx 文件
diskpart # 打开 Diskpart 窗口 select vdisk file="C:\Users\<你的用户名>\AppData\Local\Docker\wsl\data\ext4.vhdx" attach vdisk readonly compact vdisk detach vdisk exit
但是,很多人发现这样操作往往没效果。我之前也是多次尝试失败,只能先扩容磁盘将就用。结果 ext4.vhdx 文件还是越变越大,C 盘最终爆满。
终于,我找到一个真正有效的办法,只需要在上面的步骤前 加一步关键操作。
正确解决方案
-
删除无用的 Docker 镜像和容器
这一步非常重要!!!!!!!如果不清理无效数据,压缩几乎没效果。docker system prune(会删除无用的容器、网络、缓存等,建议提前确认无重要数据)
-
退出 Docker Desktop 并关闭 WSL2 实例
wsl --shutdown -
压缩 ext4.vhdx 文件
找到对应的 vhdx 文件:C:\Users\<你的用户名>\AppData\Local\Docker\wsl\data\ext4.vhdx然后执行压缩操作:
diskpart select vdisk file="C:\Users\<你的用户名>\AppData\Local\Docker\wsl\data\ext4.vhdx" attach vdisk readonly compact vdisk detach vdisk exit -
上述
diskpart系列命令也可简化为:Optimize-VHD -Path "path_to_disk.vhdx" -Mode Full
执行完成后,C 盘空间会显著回收 🎉。
3万+

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



