Mac M1环境下Docker提示no space left on device问题求助
解决Mac上Docker磁盘镜像已满但
docker system df显示占用异常的问题 问题根源
Mac上Docker通过HyperKit运行Linux虚拟机,磁盘镜像是稀疏文件(只会增长不会自动收缩)——即便你删除镜像/容器,虚拟机内的空间被释放,但宿主Mac上的磁盘文件不会自动缩小。另外虚拟机内部可能堆积了未被docker system df统计的容器日志、临时文件,导致磁盘耗尽。
无法特点Next.caAir前� Schwer冲突雅 Frans大路 mini repeated,直接上解决步骤:
步骤1:进入Docker虚拟机清理内部垃圾
Mac上Docker的虚拟机终端可通过以下命令访问:
screen ~/Library/Containers/com.docker.docker/Data/vms/0/tty
进入后用户名是root,无需密码,执行以下操作:
- 清理容器日志(最常见的空间占用原因):
truncate -s 0 /var/lib/docker/containers/*/*-json.log - 清理系统临时文件:
apt-get clean rm -rf /var/tmp/* /tmp/* - 彻底清理Docker未使用的资源(包括未引用的镜像、卷、网络):
docker system prune -a -f --volumes - 检查容器层存储目录大小,确认是否有残留废弃层:
du -sh /var/lib/docker/overlay2
完成后按Ctrl+A再按D退出screen会话(不要直接关闭终端)。
步骤2:收缩Docker磁盘镜像(释放Mac宿主空间)
- 完全退出Docker Desktop:点击顶部菜单栏Docker图标 →
Quit Docker Desktop - 在Mac终端执行命令压缩稀疏磁盘文件,回收未使用空间:
hdiutil compact ~/Library/Containers/com.docker.docker/Data/vms/0/Docker.raw
步骤3:调整Docker磁盘限额避免再次耗尽
打开Docker Desktop偏好设置 → Resources → Advanced,设置合理的磁盘大小(比如20GB),限制虚拟机对宿主空间的占用。
步骤4:检查其他潜在空间占用
- 确认是否有容器挂载了本地目录,且容器向该目录写入了大量数据(比如日志、缓存文件)
- 彻底清理构建缓存:
docker builder prune -a -f
内容的提问来源于stack exchange,提问作者dorinand
相关产品推荐
相关产品推荐

