TreeSize怎么分析Docker容器存储_TreeSize扫描容器数据卷大小教程【进阶】

冬明君_2997

冬明君_2997

2026-05-13

715人浏览

原创

应先定位并扫描ext4.vhdx虚拟磁盘文件,再通过\\wsl$\映射分析volume目录,最后用diskpart compact vdisk强制收缩释放空间。

treesize怎么分析docker容器存储_treesize扫描容器数据卷大小教程【进阶】

如果您希望精确掌握Docker容器相关数据在磁盘上的实际占用情况,但TreeSize无法直接识别容器内部路径或虚拟磁盘结构,则可能是由于Docker Desktop在Windows上使用了WSL2后端的虚拟硬盘文件(如docker-desktop-data),这些文件被封装在ext4镜像中,TreeSize默认仅能扫描NTFS可见目录。以下是针对该场景的进阶分析步骤:

一、定位Docker Desktop虚拟磁盘物理路径

TreeSize无法直接扫描容器数据卷,是因为Docker Desktop for Windows将所有容器镜像、卷、层等数据统一存储于WSL2虚拟机的虚拟硬盘文件中,该文件本身是Windows可识别的单个大文件,需先定位其位置才能被TreeSize纳入分析范围。

1、确保Docker Desktop已运行,并打开PowerShell(管理员权限)。

2、执行命令:wsl -l -v,确认docker-desktop-data处于Running状态。

3、执行命令:wsl -d docker-desktop-data -e sh -c "cat /proc/mounts | grep ext4",获取当前挂载点信息(通常为/mnt/wsl/docker-desktop-data,但此路径在Windows资源管理器中不可见)。

4、退出WSL,执行命令:explorer.exe shell:LocalAppDataPackagesMicrosoft.WSL2LinuxKernel_8wekyb3d8bbweLocalState,手动打开WSL2根目录。

5、在该目录下查找名为ext4.vhdx的文件——该文件即为docker-desktop-data的底层虚拟磁盘映像,TreeSize可直接扫描此文件大小。

二、使用TreeSize扫描并解析ext4.vhdx文件

TreeSize虽不能挂载或解析ext4文件系统内容,但可准确统计ext4.vhdx作为单个文件的磁盘占用量,这是判断Docker空间是否异常膨胀的最直接依据;结合文件修改时间与大小排序,可快速识别是否为该文件长期未清理导致C盘告急。

1、启动TreeSize Free或TreeSize Professional。

2、点击左上角“Scan” → “Custom Scan…”。

3、在弹出窗口中,点击“Add Folder…”,然后手动粘贴或浏览至shell:LocalAppDataPackagesMicrosoft.WSL2LinuxKernel_8wekyb3d8bbweLocalState路径。

4、勾选“Include files without extension”和“Scan hidden files/folders”选项。

5、点击“OK”开始扫描,等待完成(通常需1–3分钟)。

6、扫描完成后,在主视图中查找文件名含ext4.vhdx的条目,右键选择“Properties”,查看其“Size on disk”值——该数值即为Docker Desktop当前占用的全部空间(含镜像、容器、卷、缓存等总和)。

三、分离并分析Docker Volume真实数据目录

当需要进一步区分哪些具体Volume占用了大量空间(而非仅知总大小),必须绕过WSL2封装,将Volume数据目录显式导出为Windows可访问路径。Docker Volume本身不直接暴露宿主机路径,但可通过docker volume inspect查得其在WSL2内部的绝对路径,再借助\wsl$网络路径实现映射。

1、在PowerShell中执行:docker volume ls,列出所有命名卷。

Docker Compose Linter
Docker Compose Linter

检查 docker-compose.yml 文件的安全问题、最佳实践和端口冲突

下载

2、对任一目标卷(如myapp_data),执行:docker volume inspect myapp_data,记录输出中Mountpoint字段值(例如/var/lib/docker/volumes/myapp_data/_data)。

3、打开Windows资源管理器,在地址栏输入:\wsl$docker-desktop-data arlibdocker olumesmyapp_data_data,按回车——若路径有效,将直接显示该Volume内所有文件。

4、在资源管理器中右键该文件夹 → “TreeSize Free”(需已安装并注册上下文菜单)→ 启动TreeSize对该目录进行深度扫描。

5、TreeSize将生成该Volume内各子目录/文件的大小分布树,可直观识别日志堆积、缓存未清理、数据库快照冗余等具体问题源。

四、强制收缩docker-desktop-data.vhdx文件体积

即使删除大量镜像与容器,WSL2虚拟磁盘文件ext4.vhdx也不会自动释放已分配空间,因其采用动态扩展机制且不主动TRIM。必须通过WSL2内置工具触发磁盘压缩,使TreeSize后续扫描反映真实可用空间。

1、关闭Docker Desktop及所有WSL2发行版实例。

2、在PowerShell(管理员)中执行:wsl --shutdown。

3、执行:wsl -d docker-desktop-data -u root -e sh -c "echo 1 > /proc/sys/vm/drop_caches",清空页缓存。

4、执行:wsl -d docker-desktop-data -u root -e sh -c "dd if=/dev/zero of=/var/cache/zerofile bs=1M count=1024; sync; rm -f /var/cache/zerofile",填充零字节以供后续压缩识别空闲块。

5、退出WSL,执行:diskpart,进入diskpart交互环境。

6、依次输入:select vdisk file="C:Users\AppDataLocalPackagesMicrosoft.WSL2LinuxKernel_8wekyb3d8bbweLocalStateext4.vhdx"(请替换为实际路径)。

7、输入:attach vdisk readonly。

8、输入:compact vdisk。

9、输入:detach vdisk,退出diskpart。

10、重启Docker Desktop,再次用TreeSize扫描ext4.vhdx,对比前后Size on disk值变化。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

treesize docker

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
k8s和docker区别
k8s和docker区别

k8s和docker区别有抽象层次不同、管理范围不同、功能不同、应用程序生命周期管理不同、缩放能力不同、高可用性等等区别。本专题为大家提供k8s和docker区别相关的各种文章、以及下载和课程。

2023.07.24

705

4

docker进入容器的方法有哪些
docker进入容器的方法有哪些

docker进入容器的方法:1. Docker exec;2. Docker attach;3. Docker run --interactive --tty;4. Docker ps -a;5. 使用 Docker Compose。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.04.08

5319

6

docker容器无法访问外部网络怎么办
docker容器无法访问外部网络怎么办

docker 容器无法访问外部网络的原因和解决方法:配置 nat 端口映射以将容器端口映射到主机端口。根据主机兼容性选择正确的网络驱动(如 host 或 overlay)。允许容器端口通过主机的防火墙。配置容器的正确 dns 服务器。选择正确的容器网络模式。排除主机网络问题,如防火墙或连接问题。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.04.08

6297

6

docker镜像有什么用
docker镜像有什么用

docker 镜像是预构建的软件组件,用途广泛,包括:应用程序部署:简化部署,提高移植性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.04.08

2413

7

Docker容器化部署与DevOps实践
Docker容器化部署与DevOps实践

本专题面向后端与运维开发者,系统讲解 Docker 容器化技术在实际项目中的应用。内容涵盖 Docker 镜像构建、容器运行机制、Docker Compose 多服务编排,以及在 DevOps 流程中的持续集成与持续部署实践。通过真实场景演示,帮助开发者实现应用的快速部署、环境一致性与运维自动化。

2026.02.11

259

16

Docker 容器部署
Docker 容器部署

本专题整合了Docker容器部署相关内容,阅读专题下面的文章了解更多详细操作教程。

2026.03.31

451

14

Java容器化部署与Docker实践教程合集
Java容器化部署与Docker实践教程合集

聚焦 Java 应用的容器化与云原生部署,讲解 Dockerfile 编写规范与 Java 应用镜像构建、多阶段构建(Multi-stage Build)减小镜像体积、Jib / Buildpacks 免 Dockerfile 镜像构建方案、JVM 容器感知参数(-XX:MaxRAMPercentage)配置、Docker Compose 编排多服务(应用 + MySQL + Redis)、容器健康检查与资源限制、Kubernetes

2026.05.11

400

26

Go Docker与容器化部署教程合集
Go Docker与容器化部署教程合集

聚焦 Go 应用的容器化部署优势与实践,讲解 Go 静态编译特性(CGO_ENABLED=0)与 scratch / distroless 极小基础镜像构建、多阶段 Dockerfile 编写规范、交叉编译生成目标平台二进制、镜像安全扫描(Trivy)与漏洞修复、Docker Compose 本地编排开发环境、Kubernetes Deployment / Service / ConfigMap 部署 Go 服务、健康检查(Livene

2026.05.15

305

24

Hyperf 项目部署运维与性能调优手册
Hyperf 项目部署运维与性能调优手册

聚焦 Hyperf 在生产环境的落地,包含 Docker 高效打包、Swoole 配置优化、常见的内存溢出(OOM)问题排查方法以及热更新方案。

2026.05.19

445

15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
phpMyAdmin 安装文档
phpMyAdmin 安装文档

共0课时 | 0人学习

Docker 官方文档
Docker 官方文档

共0课时 | 0人学习

宝塔 Docker 模块使用手册
宝塔 Docker 模块使用手册

共0课时 | 0人学习