MacOS 在使用 docker: no space left on device: unknown

MacOS 在使用 docker 的过程中出现以下错误:

sh 复制代码
failed to send write: write /var/lib/desktop-containerd/daemon/io.containerd.content.v1.content/ingest/d8d3a8edbc49a0344e84320ead6a28a14a3b9cba48be7a58acacfef312fb70b5/data: no space left on device: unknown

这个错误非常常见,本质原因就是 Docker(更准确说是 containerd 的内容存储目录)磁盘空间不足。不是你的硬盘满了,而是 Docker Desktop 的虚拟磁盘空间已满。


✅ 1. 最常见原因:Docker Desktop 的虚拟磁盘满了

Mac 上 Docker Desktop 默认会创建一个虚拟磁盘 Docker.raw(几十 GB),所有镜像都存里面。

加载一个大镜像 m3e-large-api(好几 GB)就会爆。

✔ 解决方法:增大 Docker 虚拟磁盘大小

路径:

Docker Desktop → Settings → Resources → Advanced → Disk image size

把 Disk image size 调大一点,比如:

  • 30GB → 改成 80GB
  • 60GB → 改成 120GB

改完后要 Restart Docker。


✅ 2. 删除不用的镜像/容器释放空间(快速见效)

终端执行:

复制代码
docker system df

看看空间占用情况。

然后清理:

sh 复制代码
docker system prune -a

如果你想更狠一点:

sh 复制代码
docker system prune -a --volumes

⚠ 注意:会删除所有不用的镜像、容器、网络和 volume。


✅ 3. 查看 containerd 在 Mac 中的真实空间占用

Mac Docker Desktop 的 containerd 数据目录:

~/Library/Containers/com.docker.docker/Data/vms/0/data/Docker.raw

你可以看下它占了多大:

ls -lh ~/Library/Containers/com.docker.docker/Data/vms/0/data/Docker.raw

如果这个文件已经接近 Docker Desktop 配置的上限,即使硬盘有空间也加载不进去。


✅ 4. 强制清理 containerd 的内容目录(危险,慎用)

你的报错目录:

/var/lib/desktop-containerd/daemon/io.containerd.content.v1.content

如果你确信可以全部清空:

rm -rf /var/lib/desktop-containerd/daemon/io.containerd.content.v1.content/*

⚠ 注意:会导致 containerd 中的内容全部丢失(Docker Desktop 可能需要重启或重置)。


✅ 5. 如果以上都不行:重置 Docker Desktop(杀手锏)

Docker Desktop → Troubleshoot → Reset →

  • "Clean / Purge data" 或者
  • "Reset to factory defaults"

会清掉全部镜像和容器,但能保证干净。


📌 最推荐的解决方案(强烈建议)

你是加载大模型镜像 m3e-large-api(几 GB),99% 是 Docker Desktop 虚拟磁盘不够大。

👉 把 Docker Desktop 的 disk image size 调大到 80GB 或以上,然后重启,再 docker load。


如果你愿意,可以把以下输出贴给我,我帮你判断更准确:

sh 复制代码
docker system df
df -h
ls -lh ~/Library/Containers/com.docker.docker/Data/vms/0/data/Docker.raw
相关推荐
猫吃了源码1 小时前
k9s简介和安装
linux·docker·kubernetes
云原生指北2 小时前
Docker Sandboxes 上手:从安装到第一次跑 Agent
运维·docker·容器
Web Security Loop2 小时前
MAC卸载JDK环境
java·macos·jdk
ziyun6668883 小时前
Docker 容器化 Web 服务架构搭建与自动化运维项目
运维·docker·架构
骇客野人5 小时前
Docker Compose 部署多个独立 Jar 服务完整实操步骤
docker·容器·jar
云川之下7 小时前
【k8s】Docker inspect 命令
docker·容器·kubernetes
倔强的石头1069 小时前
飞牛OS部署Mtab:Docker搭建自托管书签导航并实现远程访问
运维·docker·容器
apgk11 天前
基于Canal实现mysql数据同步到消息队列(RabbitMQ/Kafka)详细操作教程
docker·kafka·rabbitmq
fatcoder1 天前
玩转Docker 06 — 容器网络
前端·后端·docker
AR_xsy1 天前
docker--资源配额 配置
运维·docker·容器