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

无法将Docker镜像推送至Elastic Container Registry(ECR)问题求助

Windows环境下ECR镜像推送未授权问题解决方案(已完成仓库创建、docker登录成功场景)

相关错误场景说明:已创建ECR仓库,完成AWS身份验证且docker login操作成功,但推送镜像时仍提示未授权;使用Windows系统,尝试sudo命令无效。
ECR推送未授权错误截图

排查&解决步骤

  • 核对镜像标签格式是否完全匹配ECR要求
    ECR要求推送的镜像必须使用完整格式标签:<AWS账户ID>.dkr.ecr.<区域代码>.amazonaws.com/<ECR仓库名>:<自定义标签>,请检查账户ID、区域代码、仓库名三个字段是否完全匹配你创建的ECR配置,任意字段拼写错误都会触发未授权报错。
  • 核对AWS身份的推送权限
    docker login成功仅代表你拥有ECR的登录权限,不代表拥有镜像推送权限。请确认你获取登录凭证所用的IAM身份(用户/角色)已附加包含ecr:PutImage、ecr:InitiateLayerUpload、ecr:UploadLayerPart、ecr:CompleteLayerUpload权限的策略,例如AWS托管策略AmazonEC2ContainerRegistryPowerUser。你可以在Windows终端执行aws sts get-caller-identity命令查看当前生效的IAM身份,再前往IAM控制台核对对应身份的权限配置。
  • 清理Windows凭据管理器中的过期ECR凭证
    Windows Docker Desktop默认会将登录凭证存储在系统凭据管理器中,旧的过期ECR凭证未清除时,即使重新执行login成功,Docker推送时仍会调用旧凭证导致报错。操作步骤:
    1. 搜索打开Windows「凭据管理器」
    2. 切换到「Windows凭据」分类,删除所有域名匹配你的ECR地址(<AWS账户ID>.dkr.ecr.<区域代码>.amazonaws.com)的凭证
    3. 重新执行ECR登录命令后再次尝试推送
  • 使用正确的Windows版ECR登录命令
    Windows环境无需添加sudo前缀,推荐使用AWS CLI v2执行如下登录命令,避免手动输入密码导致的凭证错误:
    aws ecr get-login-password --region <替换为你的ECR所在区域> | docker login --username AWS --password-stdin <替换为你的AWS账户ID>.dkr.ecr.<替换为你的ECR所在区域>.amazonaws.com

内容的提问来源于stack exchange,提问作者Siddharth Sharma

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 09:36:03