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。

相关推荐
墨神谕1 小时前
Docker Compose 从入门到实战:核心概念、YAML 配置详解、常用命令与多容器部署
运维·docker·容器
kyle~1 小时前
Linux --- CPU 调度机制
linux·运维·数码相机
晴天的雨.9921 小时前
【Linux】编译器gcc/g++
linux·运维·服务器
xiaoyunxuexibiji1 小时前
供应商认证管理怎么做?从资质审核到现场认证、样品认证
运维·服务器·人工智能
JoyCong19981 小时前
参数测评:ToDesk个人版、团队版、企业版的设备数、并发通道与安全能力对比
运维·服务器·网络·安全·智能手机·远程工作
Tronlong创龙1 小时前
TLT153工控机:Docker 环境部署与容器开发实践(上)
docker·嵌入式开发·硬件开发·工业控制·工业开发板
KIDULT°1 小时前
【K8s 实战】Volume 存储、PV/PVC、ConfigMap 与 Secret 完整实验
云原生·容器·kubernetes
无敌糖果1 小时前
Nginx 后端error.log疯狂刷盘问题分析
运维·nginx
逐流人2 小时前
ELK企业级日志分析系统:从零搭建集中化日志平台
运维·elk·云原生·云计算·日志分析