清理WSL2下的docker磁盘docker_data.vhdx的长期增长的容量问题
一、背景:
我们在win系统长期使用dockerDeskTop后,发现及时使用docker rm命令删除镜像,docker_data.vhdx磁盘的大小也不会减少,长期以往,我们的磁盘容量被占用的越来越多,现在我们需要一个办法,只删除自己不需要的镜像,并且不影响其他镜像,还可以减小磁盘容量.


先介绍下,为什么会出现背景中提到的现象
- 镜像文件被标记为可回收,但底层文件仍存在于 WSL2 的文件系统中。
- Docker - - Desktop 使用的 ext4.vhdx是一个动态磁盘,不会自动压缩或释放空间
二、操作步骤
1、删除不需要的镜像
#打开终端命令窗口
docker images
docker rmi struct_gan:v2

2、清理可能残留的中间层
docker image prune -f

3、强制压缩 docker_data.vhdx(核心步骤)
# 完全退出 Docker Desktop(右键托盘 → Quit)
wsl --shutdown
等几秒,确保所有 WSL 实例关闭。

# 关闭dockerdesktop,再重新打开终端窗口
# 指定你的 VHDX 路径(填写自己的磁盘路径)
$vhdxPath = "E:\Docker\AppData\Local\wsl\DockerDesktopWSL\disk\docker_data.vhdx"# 检查文件是否存在
if (Test-Path $vhdxPath) {Write-Host "正在压缩 VHDX 文件,请稍候..."Optimize-VHD -Path $vhdxPath -Mode FullWrite-Host "✅ 压缩完成!文件路径:$vhdxPath"
} else {Write-Host "❌ 文件不存在:$vhdxPath"
}

等待压缩

压缩完成,再次查看磁盘占用减少
