Docker返回Error 133:磁盘充足却无法创建临时文件
针对M3 Max芯片MacBook Pro上,Homebrew安装的Docker执行Makefile构建AWS镜像时出现的assertion failed [!result.is_error]: Failed to create temporary file错误(返回Error 133对应SIGTRAP),可尝试以下方案:
检查Docker文件共享与tmpfs配置
进入Docker Desktop的Resources > File Sharing,确认构建上下文所在目录已加入共享列表;再到Settings > Docker Engine查看是否有自定义tmpfs配置,若存在冲突可恢复默认配置后重启Docker。切换构建后端或禁用containerd
M系列芯片默认使用buildx构建后端,可能存在架构兼容问题。执行命令切换到默认构建器:docker buildx use default或在Docker Desktop的
Features in Development中关闭Use containerd for pulling and storing images选项,重启后重新构建。重置Docker Desktop至出厂设置
打开Docker Desktop的Troubleshoot菜单,选择Reset to factory defaults(注意:此操作会清除本地镜像、容器等数据,建议提前备份),重置后重新配置资源参数再尝试构建。修复系统临时目录权限
Docker构建依赖/tmp目录,检查其权限是否正常:ls -ld /tmp正常权限应为
drwxrwxrwt,若异常则执行:sudo chmod 1777 /tmp修复后重启Docker。
更新Docker到最新版本
Homebrew安装的Docker可能存在旧版本适配问题,执行命令更新:brew update brew upgrade docker docker-compose更新完成后重启Docker Desktop。
内容的提问来源于stack exchange,提问作者Taylor Watkins

