【已解决】Windows 的 docker 删除容器后 WSL2 磁盘空间不释放的问题 |
您所在的位置:网站首页 › 操作无法完成因为文件已在todo › 【已解决】Windows 的 docker 删除容器后 WSL2 磁盘空间不释放的问题 |
【已解决】Windows 的 docker 删除容器后 WSL2 磁盘空间不释放的问题
1、起因及原因2、解决2.1 找到要压缩的虚拟磁盘文件2.2 关闭 Docker Desktop2.3 压缩虚拟磁盘文件
3、偏招
1、起因及原因
很多同学拉取镜像使用一段时间后发现 C 盘快满了,把之前用过的镜像和容器删除,发现 WSL 挂载目录的虚拟磁盘大小没有变化,非常的奇怪。 其实,不同于 WSL1,WSL2 本质上是虚拟机,所以 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 的命令窗口,如下图:
上述操作执行完毕,WSL2 删除文件后空出来的磁盘空间就被释放了,可以去虚拟磁盘文件的路径看到 ext4.vhdx 文件大小已经减小。最后打开 Docker Desktop 可以看到原来镜像还在,成功解决问题。 3、偏招有些同学尝试把 ext4.vhdx 删除直接从根源解决问题,其实这也是可以的 开机后马上切换到 ext4.vhdx 目录下,把 ext4.vhdx 删除,因为如果你启动 docker 后再想去删除,他会告诉你 ext4.vhdx 操作无法完成,因为文件已在System中打开。上个步骤之后,我们会发现打开 Docker Desktop 一直在 starting ,打不开,卸载 Docker Desktop ,再重新安装 Docker Desktop 打开即可解决。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |