Watch at Ease看见世界,读懂生活。

科技 · 实用指南

Docker Desktop prune 后磁盘不缩?先区分回收与 VHDX 压缩

删除数据或压缩磁盘前,分别测量 Docker 对象、WSL 文件系统块和准确的主机 VHDX。

原创示意图:Docker Desktop prune 后磁盘不缩?先区分回收与 VHDX 压缩
原创示意图:`docker system prune` 可以释放 Docker 对象,却不保证承载 Docker Desktop 的 Windows 文件立刻变小。把问题拆成三项测量:Docker 对象归属、Linux 内部空闲块、主机 VHDX 已分配字节。 Watch at Ease

`docker system prune` 可以释放 Docker 对象,却不保证承载 Docker Desktop 的 Windows 文件立刻变小。把问题拆成三项测量:Docker 对象归属、Linux 内部空闲块、主机 VHDX 已分配字节。

冻结必须保留的数据

列出运行中和已停止容器、镜像、builder、命名卷与匿名卷、Compose 项目及恢复所需导出或备份。记录 Docker Desktop 与 WSL 版本、后端、磁盘位置和主机空闲空间。不要从 `--volumes` 或手动删除 VHD 开始。

分别测量三层

保存 `docker system df -v`、builder 使用量、Docker/WSL 内 Linux 文件系统使用量,以及 Windows 上准确 `.vhdx` 的物理字节。它们分别回答对象归属、来宾分配和主机分配。

只清理已确认未使用对象

依据清单选择最窄的 prune 命令。system prune 会处理停止容器、未用网络、悬空镜像和未用构建缓存;标记镜像和卷需要额外参数或独立命令。先读删除预览并保护命名数据。

识别磁盘与版本边界

确认 Docker Desktop 当前实际管理哪一个 VHDX,迁移或升级后尤其重要。4.34.0 为受管 WSL2 VHD 引入自动回收,因此先重启并复测,再决定是否手工压缩;不要照搬旧安装路径。

主机压缩前先完全分离

若来宾块已释放但主机 VHDX 仍大,且受管路径没有自动回收,退出 Docker Desktop 并执行 `wsl --shutdown`。核对准确动态 VHD 已不在使用;Microsoft 要求磁盘已分离或只读挂载。

用前后证据闭环

重新测量 Docker 使用量、来宾文件系统、VHDX 字节和 Windows 空闲空间。重启 Docker Desktop,验证保留容器和卷并执行应用健康检查。若错误磁盘变化、数据丢失、VHD 仍占用或主机字节未变,立即停止。

原创示意图:主机压缩前先完全分离
原创示意图:若来宾块已释放但主机 VHDX 仍大,且受管路径没有自动回收,退出 Docker Desktop 并执行 `wsl --shutdown`。核对准确动态 VHD 已不在使用;Microsoft 要求磁盘已分离或只读挂载。 Watch at Ease