启动docker-compose遇OSError错误:Exec format error路径/usr/local/bin/docker-credential-ecr-login
解决Docker Compose拉取镜像时的Credentials Store Exec格式错误
看起来你碰到的问题核心是/usr/local/bin/docker-credential-ecr-login这个凭证存储工具出了执行格式不兼容的问题——要么是工具本身损坏,要么是安装的版本和你的Mac架构不匹配(比如Intel Mac装了arm64版本,或者反过来)。其他项目能正常拉取镜像,说明Docker的基础功能没问题,只是这个特定的凭证插件掉链子了。
下面是一步步的修复方案:
步骤1:检查工具的架构和状态
先打开终端,运行这两个命令确认问题:
# 查看文件权限和位置 ls -l /usr/local/bin/docker-credential-ecr-login # 检查文件的架构类型 file /usr/local/bin/docker-credential-ecr-login
如果输出显示的架构和你的Mac不匹配(比如M系列Mac显示x86_64,或者Intel Mac显示arm64),那就是架构不兼容的问题;如果提示文件损坏,那就是工具本身出问题了。
步骤2:移除有问题的工具
直接删除这个出问题的文件:
rm /usr/local/bin/docker-credential-ecr-login
步骤3:重新安装适配的版本
根据你的Mac架构选择对应的安装方式:
- Intel(x86_64)Mac:直接用Homebrew安装:
brew install docker-credential-ecr-login - M系列(arm64)Mac:确保你用的是arm版Homebrew(路径在
/opt/homebrew),然后同样运行上面的命令。如果之前用的是Intel版Homebrew,建议切换到arm版后再安装。
步骤4:验证修复并重新运行
先测试工具是否正常工作:
docker-credential-ecr-login version
如果能正常输出版本信息,再回到你的项目目录重新运行:
docker-compose up
临时备选方案(不想重装工具时用)
如果你只是想临时绕开这个问题,可以修改Docker的配置文件,暂时禁用这个凭证存储:
- 打开
~/.docker/config.json文件(用文本编辑器或者终端命令open ~/.docker/config.json) - 找到
"credsStore": "ecr-login"这一行,把它注释掉或者直接删除 - 保存文件后,再尝试运行
docker-compose up
这个临时方案只是应急用的,长期来看还是修复凭证工具更稳妥。
内容的提问来源于stack exchange,提问作者Adrian Gö risch
相关产品推荐
相关产品推荐

