Docker Desktop docker_data.vhdx 使用时间长了过大,解决办法

2026年10月21日09:58:46

你当前环境:Docker Desktop 新版 Mono 单分发架构 + Windows家庭版,无Hyper-V,docker-desktop-data 不存在、无法 fstrim

文件:D:\docker\wsl\DockerDesktopWSL\disk\docker_data.vhdx

痛点:docker system prune -a 只能删Docker对象,但不会自动收缩vhdx磁盘文件 ;没有fstrim入口、Optimize-VHD 命令不可用

🔹 尝试瘦身流程(保留镜像,能试的全部步骤)

  1. 清理Docker垃圾(谨慎,--volumes 会删除未挂载卷)
powershell 复制代码
docker system prune -a --volumes
  1. 运行官方回收容器(Mono架构专用,尝试内部置零空闲块)
powershell 复制代码
docker run --privileged --pid=host docker/desktop-reclaim-space
  1. 托盘右键 Quit Docker Desktop 完全退出
  2. 管理员PowerShell关闭WSL
powershell 复制代码
wsl --shutdown
  1. 确认全部Stopped:wsl --list -v
  2. diskpart压缩(家庭版唯一压缩方式)
diskpart 复制代码
select vdisk file="D:\docker\wsl\DockerDesktopWSL\disk\docker_data.vhdx"
attach vdisk readonly
compact vdisk
detach vdisk
exit

✅ 现象:compact输出压缩百分比 = 成功回收空间

❌ 现象:0%可压缩 = Mono架构限制,空闲块无法置零,此路失效

🔹 两条最终路线

  1. 快速瘦身(最简单,清空全部镜像/容器/卷)

    退出Docker → wsl --shutdown → 直接删除 docker_data.vhdx → 打开Docker,自动重建一个很小的新vhdx。

  2. 需要保留镜像、反复压缩无效

  • 方案1:接受磁盘占用持续上涨;或者迁移磁盘位置(Docker设置 → Resources → Advanced → Disk image location)
  • 方案2:降级 Docker Desktop 到 4.29.x 更早版本(老双分发架构,有独立docker-desktop-data,可以正常fstrim压缩,可控性强)

最简单的办法就是,备份好数据 退出Docker → wsl --shutdown → 直接删除 docker_data.vhdx → 打开Docker,自动重建一个很小的新vhdx。

相关推荐
Sayai5 小时前
Neo4j 图数据质量检查实战:环路检测、孤立节点与连通分量,两条 Cypher 引出的数据体检清单(含变长路径性能陷阱)
运维·neo4j·图数据库·数据质量·cypher
Elastic 中国社区官方博客6 小时前
更少的位数,相同的召回率:DiskBBQ 更保守的自动校准扫描
大数据·运维·开发语言·人工智能·elasticsearch·搜索引擎
方便面不加香菜6 小时前
Docker Volume -- 管理卷Volume详解
运维·docker·容器
沫璃染墨6 小时前
从零入门计算机网络系列(十八):TCP连接管理详解——从三次握手与四次挥手到TIME_WAIT机制
运维·服务器·网络·c++·网络协议·tcp/ip·tcp
Felven7 小时前
华为鲲鹏920s芯片serdestool工具使用说明
linux·运维·服务器·华为·鲲鹏920·serdestool
江湖有缘7 小时前
Docker实战 | 使用Docker部署lemonitor镜像站点列表程序
运维·docker·容器
莫晓燚7 小时前
mall 电商项目完整部署---实战
linux·运维·docker·容器
爱和冰阔落7 小时前
【Linux网络】JsonCpp 怎么实现序列化?从 Request/Response 到网络计算器消息设计
linux·运维·网络·php
Decay__7 小时前
01_SQLServer 体系架构全解 —— 实例进程、关系引擎、SQLOS 与事务日志深入
运维·数据库·sql·mysql·架构
我是koten13 小时前
【运维杂谈】K8s遇到Terminating的名称空间删除不了怎么办?(解决方案亲测有效)
linux·运维·服务器·云原生·kubernetes·k8s·名称空间