Windows下释放Docker所占用的WSL磁盘空间

使用下面的命令清理镜像:

1
docker system prune

在Linux下面可以释放磁盘空间,但是在Windows下却并不能够真正的释放硬盘。

搜寻了一下,发现有一个文件超级大:

1
C:\Users\{用户名}\AppData\Local\Docker\wsl\data\ext4.vhdx

这是WSL的虚拟机文件。这个文件看起来是只增长,不回收硬盘空间的,所以,需要手动回收硬盘空间。

1. 停止wsl2

1
wsl --shutdown

2. 运行diskpart释放空间

1
2
3
4
5
6
7
8
# 代码来自 https://github.com/microsoft/WSL/issues/4699#issuecomment-627133168

diskpart
select vdisk file="C:\Users\<你的用户名>\AppData\Local\Docker\wsl\data\ext4.vhdx"
attach vdisk readonly
compact vdisk
detach vdisk
exit

参考资料