在使用 docker desktop 时,即使删除了不需要的镜像和容器,wsl2 分配的存储空间也不会自动释放,导致 C 盘空间越来越小。下面是释放存储空间的方法。

参考: https://gist.github.com/minglewong/8375cc92e6821ac501c27f187511788b


# 删除不需要的镜像和容器
docker system prune

# 然后退出Docker Desktop并关停WSL2实例
wsl --shutdown

# 最后打开 Windows 中提供的diskpart工具进行压缩
diskpart
# open window Diskpart
select vdisk file="C:\Users\xxx\AppData\Local\Docker\wsl\data\ext4.vhdx"
attach vdisk readonly
compact vdisk
detach vdisk
exit

我的电脑并不存在上述 data\ext4.vhdx 文件,而是 disk\docker_data.vhdx 和 main\ext4.vhdx 两个文件,所以我执行的是下面的命令(实际执行时只需要压缩docker_data.vhdx文件即可):

select vdisk file="C:\Users\xxx\AppData\Local\Docker\wsl\disk\docker_data.vhdx"
select vdisk file="C:\Users\xxx\AppData\Local\Docker\wsl\main\ext4.vhdx"