You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 14:02:47