Docker system prune回收空间未归还文件系统及Docker存储路径迁移咨询
一、让Docker回收的空间归还至文件系统
Windows下Docker默认采用WSL2后端,docker system prune仅在WSL虚拟硬盘(.vhdx)内标记空间为可用,但虚拟硬盘文件本身不会自动收缩,导致C盘空间未实际释放。按以下操作解决:
停止相关服务
打开PowerShell,执行命令:net stop docker net stop com.docker.service wsl --shutdown收缩WSL虚拟硬盘
找到Docker的WSL虚拟硬盘文件,默认路径为C:\Users\<你的用户名>\AppData\Local\Docker\wsl\data\ext4.vhdx,替换路径后执行以下diskpart命令:diskpart # 进入diskpart交互环境后依次输入: select vdisk file="C:\Users\<你的用户名>\AppData\Local\Docker\wsl\data\ext4.vhdx" attach vdisk readonly compact vdisk detach vdisk exit重启服务并验证
执行命令重启Docker:net start docker net start com.docker.service此时查看C盘空间,回收的43GB应该已释放。
另外,记得清理Gradle缓存——默认缓存路径为C:\Users\<你的用户名>\.gradle\caches,直接删除该文件夹下的过期内容(或整个caches文件夹),可额外释放大量空间。
二、将Docker缓存/镜像转移至D盘
方法1:Docker Desktop图形界面设置(推荐)
- 打开Docker Desktop,点击右上角齿轮图标进入设置页面
- 选择
Resources->WSL Integration - 先关闭WSL集成开关,点击
WSL Data Storage下方的Change按钮 - 选择D盘目标目录(如
D:\Docker\wsl),确认后等待Docker自动迁移数据,完成后重启Docker
方法2:手动迁移WSL发行版
停止相关服务
执行命令:net stop docker net stop com.docker.service wsl --shutdown导出Docker数据发行版
将现有Docker数据导出到D盘备份:wsl --export docker-desktop-data D:\docker-backup.tar注销原有发行版
wsl --unregister docker-desktop-data重新导入到D盘
指定D盘目录重新导入发行版:wsl --import docker-desktop-data D:\Docker\wsl\data D:\docker-backup.tar --version 2完成清理
启动Docker服务,确认运行正常后,可删除D盘的docker-backup.tar备份文件
额外配置:Gradle缓存迁移
右键此电脑 -> 属性 -> 高级系统设置 -> 环境变量,添加系统变量:
- 变量名:
GRADLE_USER_HOME - 变量值:
D:\.gradle
此后Gradle的依赖缓存将自动存储到D盘,避免占用C盘空间。
内容的提问来源于stack exchange,提问作者eastwater
相关产品推荐
相关产品推荐

