Windows Docker Desktop 占用磁盘空间过大?教你轻松解决!

Windows Docker Desktop 在长时间使用后,会由于镜像、容器、缓存等文件累积,导致磁盘空间占用过大。这主要是因为:

  • 镜像累积: 随着不断地拉取、构建镜像,镜像文件会占据大量空间。
  • 容器数据: 容器运行时产生的数据,如日志、配置文件等,也会占用空间。
  • 构建缓存: Docker 在构建镜像时会生成缓存,以加速后续构建。但过多的缓存也会占用空间。

删除镜像和容器这里就不说了,可以打开软件然后删除

但是很多时候你删除了容器和镜像,似乎占用没怎么变,下面就介绍一下软件之外的清理办法.

1. 镜像文件比实际占用大很多

实际上只有一些镜像,docker system df显示占用不到20G

2. 磁盘压缩

关闭wsl(切记,如果开启了docker应用,或者卡住,必须重启电脑不要打开docker

wsl --shutdown

打开磁盘应用,会弹出新的应用窗口

diskpart 

选择磁盘,参考 如何管理 WSL 磁盘空间 | Microsoft Learn 找到磁盘镜像所在文件路径

select vdisk file=....vhdx 

 

压缩磁盘

compact vdisk 

 等待完成

卸载虚拟磁盘

detach vdisk

最后再启动wsl服务即可,可能还需重启,可以看到占用少了13G,也是不少的空间呢

3. 清理构建缓存

查看系统占用:这部分如果发现占用比实际的少很多,记得用方法1来释放(例如我用这个df查看的占用25G,实际上ext4.vhdx 却有55G,实际占用多了30G)

docker system df #查看各系统的占用

执行构建清理

docker buildx prune -f

如此操作,便能够节省不少空间了。尤其是使用时间过久之后,会有很多构建缓存。

顺便提一下docker的镜像或容器文件的结构:由一层一层叠起来,像是千层饼,为了尽可能的减少重复,往往很多层都会在应用中根据hash缓存,哪怕你删了一个镜像-那个饼的层集合,但那些层并不会删除。

内容概要:本文主要介绍了在 Windows Docker Desktop 中遇到的问题——删除容器后未释放相应存储空间。作者遇到了删除容器后的磁盘空间占用并未得到有效清除的情况。在Docker系统上查看磁盘占用情况前后对比,显示删除后的可回收量与实际变化差异巨,其中镜像只收回少量空间,而容器释放几乎等于原先全部占用的空间但未能成功被物理磁盘感知并恢复到可用状态。此外,本地卷和构建缓存没有明显的变动或可以回收的内容。最终指出,针对 DockerWindows下生成的一个名为docker_data.vhdx的尺寸硬盘虚拟磁盘文件,使用PowerShell进入特定目录通过Optimize-VHD命令尝试对其优化来解决问题。 适用人群:有一定计算机基础,尤其是那些已经在使用或者打算使用Docker DesktopWindows操作系统上面工作的技术人员。 使用场景及目标:帮助用户理解在Docker Desktop环境中进行容器管理时可能出现的特殊存储相关问题及其解决方法;避免因为盲目地增删容器而导致不必要的数据风险;指导遇到同类情况的人采取正确有效的措施应对,如采用适当的命令去清理或压缩关联的VHD(Virtual Hard Disk)虚拟磁盘。 其他说明:文档中还提及由于不当操作造成的某些容器丢失的问题,这提醒使用者应提高小心谨慎度,在做删除等关键操作前考虑做好备份或者充分确认当前操作是否为最优选择。此外,提供的解决办法适用于有管理员权限并且能够运行PowerShell命令环境下的个人或团队。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

余生H

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值