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

WSL2环境下Windows系统Docker .vhdx镜像空间释放及重复占满问题

Docker Desktop Data 镜像持续占满问题解决

问题背景

Docker Desktop 的 docker-desktop-data 镜像(物理容量1TB,满足需求)持续被占满,导致所有容器无法正常运行。执行命令 wsl.exe --system -d docker-desktop-data df -h /mnt/wslg/distro 得到结果:

Filesystem      Size  Used Avail Use% Mounted on
/dev/sde       1007G 1007G     0 100% /mnt/wslg/distro

已尝试 docker desktop prune 清理无用资源,但无效果;此前通过 wsl --unregister docker-desktop-data 删除镜像解决问题,但需重建所有内容,且几周后镜像会再次被占满。


问题1:如何释放镜像空间恢复Docker运行?

  • 临时应急步骤:
    1. 停止所有运行中的容器:docker stop $(docker ps -aq)
    2. 进入 docker-desktop-data 的WSL环境:wsl.exe --system -d docker-desktop-data
    3. 定位并清理超大日志文件:
      • 容器日志默认存储路径:/var/lib/docker/containers/<容器ID>/<容器ID>-json.log
      • 用 du -sh /var/lib/docker/containers/* 找出占用空间最大的容器日志目录,直接删除对应日志文件:rm /var/lib/docker/containers/<容器ID>/<容器ID>-json.log
    4. 退出WSL环境后,重启Docker Desktop即可恢复可用空间。

问题2:为何镜像会持续被占满?

Docker 默认不对容器日志文件大小做限制,日志会无限制增长;且这类日志不会被 docker system df 等资源统计命令纳入统计范围,除非显式删除容器,否则日志不会自动清理。
即使你将容器存储绑定挂载到本地文件夹,容器自身的运行日志仍会保存在 docker-desktop-data 镜像内,长期积累后会逐步占满整个镜像空间。


长期解决方案

在Docker引擎配置中全局启用日志大小限制,从根源避免日志无限制增长:

  1. 打开Docker Desktop设置,进入Docker Engine配置页面
  2. 添加以下日志配置(以json-file驱动为例):
{
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "10m",
    "max-file": "3"
  }
}
  • max-size:单个日志文件的最大大小(示例为10MB,可按需调整)
  • max-file:保留的日志文件最大数量(示例为3个,可按需调整)
  1. 保存配置并重启Docker Desktop,新启动的容器会自动应用该日志限制。

内容的提问来源于Stack Exchange,提问作者Neil E

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 06:32:17