docker释放镜像后虚拟磁盘不减小 问题处理

在使用docker sytem prume指令清理了docker当前的所有镜像和容器后,docker的虚拟磁盘ext4.vhdx所占用的空间一点也没有减少。

使用docker system df指令查看,能清理的都已经清理了。

查阅资料后才发现,由于我安装docker时是基于wsl而不是hyper-V导致了这个问题的出现。

wsl2是虚拟机,对应的磁盘会自动扩容,但是不会自动缩容。要减少磁盘占用,需要自己手动删减。

打开powershell,输入

wsl --list -v

可以查看当前wsl下的服务。正常情况下应该是一个ubuntu和两个docker。

然后输入

wsl --shutdown

关闭wsl服务。然后使用系统自带的diskpart工具来清理磁盘。

 

diskpart
//启动diskpart命令行界面

select vdisk file="C:\Users\<你的用户>\AppData\Local\Docker\wsl\data\ext4.vhdx"
//按照你docker里面的设置来,不一定这个地址

attach vdisk readonly
//“已连接磁盘”

compact vdisk
//“已压缩磁盘”

detach vdisk
//“已分离磁盘”

exit

然后不出意外的话就已经清理完成了。

 

参考:https://gist.github.com/banyudu/af131c7bb681e8a80b5cbe2047e62d4c

https://blog.csdn.net/a6661314/article/details/128029017   (不推荐)

posted @ 2024-03-15 16:39  namezhyp  阅读(244)  评论(0编辑  收藏  举报