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

Docker.raw是否必要?Ubuntu下Docker磁盘超限问题求助

Docker.raw 文件处理与磁盘空间清理方案

1. 是否可以删除 Docker.raw 文件?

绝对不能直接删除 Docker.raw 文件。该文件是 Docker Desktop 存储镜像、容器、卷及所有相关数据的虚拟磁盘镜像,直接删除会丢失全部 Docker 数据,还可能导致 Docker Desktop 启动失败或系统异常。

2. 有效的磁盘空间清理替代方案

针对磁盘限额超限、docker system prune 无效的情况,可按以下步骤操作:

步骤1:重启 Docker Desktop 并验证限额配置

  • 关闭所有运行中的容器,完全退出并重启 Docker Desktop。
  • 进入 Docker Desktop 设置 → Resources → Advanced,确认磁盘限额确实设为 8GB,若配置未生效,重新设置后保存并重启。

步骤2:分步清理未引用资源(比全量 prune 更精准)

执行以下命令逐一清理各类未被使用的 Docker 资源:

  • 删除所有已停止的容器:
    docker rm $(docker ps -a --filter "status=exited" -q)
    
  • 删除所有悬空(无标签、无引用)的镜像:
    docker rmi $(docker images --filter "dangling=true" -q)
    
  • 删除所有未被容器引用的卷:
    docker volume rm $(docker volume ls --filter "dangling=true" -q)
    
  • 清理所有未使用的构建缓存(docker system prune 常遗漏这部分):
    docker builder prune -a
    

步骤3:压缩 Docker.raw 文件释放宿主机空间

Docker.raw 是稀疏文件,内部数据删除后不会自动释放宿主机空间,需手动触发:

  1. 完全停止 Docker Desktop,确保无任何容器或服务运行。
  2. 确认可回收空间:
    docker system df -v
    
  3. 再次执行全量清理(停止 Desktop 后清理更彻底):
    docker system prune -a --volumes
    
  4. 进入 Docker.raw 默认路径 ~/.docker/desktop/vms/0/data/,执行 fstrim 释放未使用块:
    sudo fstrim ~/.docker/desktop/vms/0/data/Docker.raw
    

步骤4:优化 Docker 日志配置(长期减少空间占用)

容器日志会后台持续占用空间,可配置日志大小限制:

  1. 创建或编辑 /etc/docker/daemon.json 文件,添加规则:
    {
      "log-driver": "json-file",
      "log-opts": {
        "max-size": "10m",
        "max-file": "3"
      }
    }
    
  2. 重启 Docker 服务生效:
    sudo systemctl restart docker
    

步骤5:考虑切换到 Docker Engine(针对磁盘紧张场景)

Docker Desktop 依赖虚拟机存储,空间管理灵活性差。若长期磁盘紧张:

  • 备份现有 Docker 数据(导出镜像、容器)。
  • 卸载 Docker Desktop,安装原生 Docker Engine。
  • 迁移备份数据到 Docker Engine,其直接使用宿主机文件系统,空间占用更可控。

内容的提问来源于stack exchange,提问作者Cromega08

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 05:05:22