在使用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 (不推荐)
标签:vdisk,清理,wsl,镜像,磁盘,docker,diskpart From: https://www.cnblogs.com/namezhyp/p/18075766