解决WSL2的docker删除镜像后,磁盘空间不释放问题

1、问题原因

由于WSL2本质上是虚拟机,所以 Windows 会自动创建 vhdx 后缀的虚拟磁盘文件作为存储。这个 vhdx 后缀的虚拟磁盘文件特点是可以自动扩容,但是一般不会自动缩容。一旦有很多文件把它“撑大”,即使把这些文件删除它也不会自动“缩小”。所以删除文件后还需要我们手动进行压缩才能释放磁盘空间。


2、解决方法

2.1、查看虚拟磁盘文件路径,并关闭Docker Desktop

首先打开Docker Desktop软件,查看Docker虚拟磁盘文件的路径:

 然后将WSL2和Docker应用退出,并使用以下命令确认:

wsl --list -v

 2.2、压缩虚拟磁盘文件

 在PowerShell中,利用diskpart收缩硬盘,首先进入diskpart:

diskpart

 

  然后选择虚拟磁盘文件:

select vdisk file="步骤2.1中虚拟磁盘文件的路径"

 接着对虚拟磁盘文件进行压缩:

compact vdisk

最后卸载虚拟磁盘:

detach vdisk

 


上述操作执行完毕,WSL2 删除文件后空出来的磁盘空间就被释放了,可以去虚拟磁盘文件的路径看到 ext4.vhdx 文件大小已经减小。最后打开 Docker Desktop 可以看到原来镜像还在,成功解决问题。

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值