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 是稀疏文件,内部数据删除后不会自动释放宿主机空间,需手动触发:
- 完全停止 Docker Desktop,确保无任何容器或服务运行。
- 确认可回收空间:
docker system df -v - 再次执行全量清理(停止 Desktop 后清理更彻底):
docker system prune -a --volumes - 进入 Docker.raw 默认路径
~/.docker/desktop/vms/0/data/,执行fstrim释放未使用块:sudo fstrim ~/.docker/desktop/vms/0/data/Docker.raw
步骤4:优化 Docker 日志配置(长期减少空间占用)
容器日志会后台持续占用空间,可配置日志大小限制:
- 创建或编辑
/etc/docker/daemon.json文件,添加规则:{ "log-driver": "json-file", "log-opts": { "max-size": "10m", "max-file": "3" } } - 重启 Docker 服务生效:
sudo systemctl restart docker
步骤5:考虑切换到 Docker Engine(针对磁盘紧张场景)
Docker Desktop 依赖虚拟机存储,空间管理灵活性差。若长期磁盘紧张:
- 备份现有 Docker 数据(导出镜像、容器)。
- 卸载 Docker Desktop,安装原生 Docker Engine。
- 迁移备份数据到 Docker Engine,其直接使用宿主机文件系统,空间占用更可控。
内容的提问来源于stack exchange,提问作者Cromega08
相关产品推荐
相关产品推荐

