首页/云/Docker 容器速查/exec format error 定位
容器排障52 条

exec format error 定位

exec format error:可执行文件与宿主 CPU 架构不符、脚本没有 shebang、或二进制被截断;先看架构再看文件格式。

Docker 容器速查云更新于 2026-10-13

exec format error 表示什么

exec format error 表示可执行文件与宿主 CPU 架构不符、脚本缺少 shebang 被当成二进制执行,或文件被截断。排查顺序是先看架构再看文件格式,两者都排除之后才是内容问题。

基本信息

高频场景arm64 镜像在 amd64 宿主上执行,或反向
验证uname -m 与镜像平台字段对照
处置改用匹配架构的标签,或补齐跨架构运行能力
脚本相关缺 shebang 的脚本被当二进制执行
适用平台跨架构环境里更常见

典型使用场景

  • 部署到架构不同的服务器时容器无法启动
  • 本地构建的镜像推到目标机器后直接报格式错误
  • 脚本缺少 shebang 时定位问题
  • 验证跨架构模拟能力是否已经生效
  • 多架构发布前在本机先做一次格式检查

核对架构与格式

核对架构与格式
uname -m                                                    # 宿主架构
docker image inspect app/web:1.0 -f '{{.Os}}/{{.Architecture}}'   # 镜像平台
head -1 entrypoint.sh                                       # 确认 shebang 是否存在
docker run --platform linux/arm64 --rm app/web:1.0 uname -m   # 验证目标平台可运行

现象与处理方向

现象原因处理方向
起容器即报错二进制架构不符改用匹配架构的镜像
脚本执行报错缺 shebang 或格式异常补 shebang 或显式指定解释器
文件不完整构建或传输异常重新构建或重新导出
只有部分节点报错节点架构不一致按节点逐个核对架构
多架构清单让拉取自动选择平台;一旦用参数覆盖平台,执行侧也要具备对应的运行能力。
本地开发机构建的镜像默认架构可能与服务器不同,构建侧要显式指定目标平台。
脚本缺少 shebang 被当作二进制执行同样报这个错,用查看首行的方式一步排除。
把宿主架构与镜像平台字段对照作为第一步,可以避免在架构不匹配的基础上继续查应用。
多平台构建能一次产出适用于两类架构的制品,比事后逐台适配更省事。

易错点

  • 本地开发机构建的镜像默认架构与服务器不同,构建侧要显式指定目标平台
  • 缺少 shebang 的脚本被当二进制执行同样报格式错误,先用查看首行排除
  • 只在一部分节点上失败时忽略节点架构差异,容易误判为偶发故障
  • 跨架构运行即使能起来也有性能与兼容边界,长期承载业务风险较高

数据来源与参考

  • Docker 官方文档:Multi-platform images(docs.docker.com/build)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌