资讯动态

Windows 的 docker 删除容器后 WSL2 磁盘空间不释放的问题

发布时间:2026/10/27 18:29:01 来源:尧图企业网站定制
Windows 的 docker 删除容器后 WSL2 磁盘空间不释放的问题1、起因及原因很多同学拉取镜像使用一段时间后发现 C 盘快满了把之前用过的镜像和容器删除发现 WSL 挂载目录的虚拟磁盘大小没有变化非常的奇怪。 其实不同于 WSL1WSL2 本质上是虚拟机所以 Windows 会自动创建 vhdx 后缀的虚拟磁盘文件作为存储。这个 vhdx 后缀的虚拟磁盘文件特点是可以自动扩容但是一般不会自动缩容。一旦有很多文件把它“撑大”即使把这些文件删除它也不会自动“缩小”。所以删除文件后还需要我们手动进行压缩才能释放磁盘空间。2、解决2.1 找到要压缩的虚拟磁盘文件如果你没更改挂载磁盘的位置那他位置在 C:\Users你当前用户名\AppData\Local\Docker\wsl\data\ext4.vhdx 记下路径后面要用到。2.2 关闭 Docker Desktop在任务栏右下角右键单击 Docker Desktop 图标关闭 Docker 桌面选择退出 Docker 桌面等一会 Docker 图标没了之后就证明 Docker 完全关闭了然后打开命令提示符我们就能能够看到确保两个状态都已停止。wsl --list -v如果这一步没关闭也没问题最后所有操作结束后重启 Docker Desktop 即可。2.3 压缩虚拟磁盘文件在 PowerShell 中执行# 关闭 WSL2 中的 linux distributions wsl --shutdown # 运行管理计算机的驱动器的 DiskPart 命令 diskpart会新打开一个叫 DiskPart 的命令窗口如下图在新打开的 DiskPart 命令窗口中执行# 选择虚拟磁盘文件 select vdisk file就是步骤2.1虚拟磁盘文件的路径 我的是D:\Program Files\Docker\data\disk\docker_data.vhdx # 压缩文件 compact vdisk # 压缩完毕后卸载磁盘 detach vdis上述操作执行完毕WSL2 删除文件后空出来的磁盘空间就被释放了可以去虚拟磁盘文件的路径看到 ext4.vhdx 文件大小已经减小。最后打开 Docker Desktop 可以看到原来镜像还在成功解决问题。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑