Docker Windows桌面端,删除容器后,占用空间没有释放
问题
Docker Windows桌面端,删除容器后,占用空间没有释放
原因
ext4.vhdx磁盘空间会根据加载的数据自动增长,但是无法自动回收。
解决
注:Docker的ext4.vhdx可能在以下路径:C:\Users\YOURNAME\AppData\Local\Docker\wsl\data
- 退出Docker Windows桌面端
- PowerShell运行:wsl –shutdown
- 【可选用diskpart】【可选用optimize-vhd,需要已安装Hyper-V】
1
2
3
4
5
6
7
8
9
10
11
12# PowerShell运行以下命令
# 进入diskpart
diskpart
# 选择虚拟机文件
select vdisk file="【填写ext4.vhdx绝对路径】"
attach vdisk readonly
# 回收虚拟机文件无用空间
compact vdisk
# 断开虚拟机文件
detach vdisk
# 退出diskpart
exit1
2# PowerShell运行以下命令
optimize-vhd -Path 【填写ext4.vhdx绝对路径】 -Mode full
参考
diskpart
optimize-vhd
- https://learn.microsoft.com/zh-hk/powershell/module/hyper-v/optimize-vhd?view=windowsserver2022-ps&viewFallbackFrom=win10-ps
- https://www.cnblogs.com/cccy0/p/16918476.html
- https://www.hanselman.com/blog/shrink-your-wsl2-virtual-disks-and-docker-images-and-reclaim-disk-space
- https://zhuanlan.zhihu.com/p/538805830