在 Windows10 中使用 Docker Desktop 时,有一个问题就是磁盘占用一直增长,即使删除镜像但还是占用着磁盘空间。这是因为因为 windows 中的 docker desktop 使用虚拟磁盘(VHDX)来存储文件系统。Windows 中,docker 运行在 WSL2 上,而 WSL2 使用虚拟磁盘 (VHDX) 来存储文件系统,VHDX 并不会自动。
这意味着您删除了一些镜像后,降低了 Docker 所需要空间到 20G,而虚拟磁盘仍然占用 100GB 的情况。这时我们可以通过 diskpart 命令手工对虚拟磁盘进行收缩。
压缩前:
- 确保 WSL2 没有运行
检查它是否正在运行:wsl —list —verbose
PS C:\WINDOWS\system32> wsl —list —verbose
NAME STATE VERSION
- docker-desktop-data Stopped 2
docker-desktop Stopped 2
如果在运行可以通过以下命令进行停止。
wsl —terminate docker-desktop
wsl —terminate docker-desktop-data
- 启动 diskpart 收缩磁盘
启动 diskpart
PS C:\WINDOWS\system32> diskpart
Microsoft DiskPart 版本 10.0.19041.964
Copyright (C) Microsoft Corporation.
在计算机上: DESKTOP-2MQJC0A
指定文件
DISKPART> select vdisk file=“C:\Users\Admin\AppData\Local\Docker\wsl\data\ext4.vhdx”
DiskPart 已成功选择虚拟磁盘文件。
压缩
DISKPART> compact vdisk
100 百分比已完成
DiskPart 已成功压缩虚拟磁盘文件。
完成
DISKPART> detach vdisk
虚拟磁盘已经分离。
DISKPART> exit
退出 DiskPart…
对比发现占用磁盘空间已经缩减。