You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法将Docker镜像推送到Amazon ECR:提示"no basic auth credentials"错误

解决Docker推送Amazon ECR时的"no basic auth credentials"错误
  • 重新获取ECR登录凭证
    执行官方登录命令,替换成你的区域和ECR仓库前缀:

    aws ecr get-login-password --region <你的区域> | docker login --username AWS --password-stdin <你的ECR仓库URI前缀>
    

    比如前缀一般是123456789012.dkr.ecr.us-east-1.amazonaws.com,执行完应该看到Login Succeeded提示。

  • 验证AWS凭证有效性
    先确认当前AWS身份有权访问ECR:

    aws sts get-caller-identity
    

    如果返回正确的用户/角色信息,再检查aws configure的配置是否对应目标区域:

    aws configure list
    
  • 检查Docker配置文件
    打开~/.docker/config.json,查看是否有对应ECR仓库的auth条目。如果有旧的无效凭证,直接删除该条目,然后重新执行登录命令。

  • 确认镜像标签格式
    要推送的镜像必须用ECR仓库URI打标签,格式是:

    docker tag <本地镜像名>:<标签> <ECR仓库URI>/<镜像名>:<标签>
    

    用docker images确认标签无误后再执行推送:

    docker push <ECR仓库URI>/<镜像名>:<标签>
    
  • 检查IAM权限
    确保当前AWS身份拥有以下ECR权限:

    • ecr:GetAuthorizationToken
    • ecr:BatchCheckLayerAvailability
    • ecr:GetDownloadUrlForLayer
    • ecr:BatchGetImage
    • ecr:InitiateLayerUpload
    • ecr:UploadLayerPart
    • ecr:CompleteLayerUpload
    • ecr:PutImage
      可以在IAM控制台给对应的用户/角色附加AmazonEC2ContainerRegistryFullAccess策略(测试用),或者自定义最小权限策略。
  • 重置Docker守护进程
    如果以上步骤都无效,尝试重启Docker服务:

    sudo systemctl restart docker
    

    然后重新登录ECR再推送。

内容的提问来源于stack exchange,提问作者Rahil Shaikh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 19:42:42