Windows 11环境下Docker推送AWS ECR报401 Unauthorized问题求助
验证Docker登录凭证有效性
重新执行完整登录命令,确保返回"Login Succeeded":aws ecr get-login-password --region <你的AWS区域> | docker login --username AWS --password-stdin public.ecr.aws/<你的账户别名>/<仓库名>检查Docker配置文件(Linux/macOS:
~/.docker/config.json;Windows:C:\Users\<用户名>\.docker\config.json),确认存在对应public.ecr.aws的auth条目,且token未过期。确认仓库类型与命令匹配
你使用的是公共ECR仓库(public.ecr.aws),需确保推送命令的URI格式完全正确:docker push public.ecr.aws/<账户别名>/<仓库名>:<镜像标签>避免混淆私有ECR仓库(格式为
<账户ID>.dkr.ecr.<区域>.amazonaws.com)的操作命令。排查IAM用户权限限制
即使配置了AdministratorAccess策略,仍需检查:- 用户是否被设置了权限边界(Permission Boundary),限制了ECR相关操作
- 是否存在**显式拒绝(Deny)**的权限策略,此类策略会优先于允许策略生效
清除凭证缓存
- 删除AWS CLI缓存目录:Linux/macOS下删除
~/.aws/cli/cache,Windows下删除对应路径的缓存文件 - 重启Docker服务,确保旧的无效凭证被彻底清除
- 删除AWS CLI缓存目录:Linux/macOS下删除
核对镜像标签
执行docker images检查本地镜像标签,确保与ECR仓库URI完全一致。若不匹配,重新打标签:docker tag <本地镜像ID> public.ecr.aws/<账户别名>/<仓库名>:<镜像标签>检查网络环境
- 确认当前网络没有代理或防火墙拦截Docker的HTTPS请求,若使用代理需同步配置AWS CLI和Docker的代理规则
- 尝试切换网络(如手机热点)测试,排除企业网络策略的影响
内容的提问来源于stack exchange,提问作者gtezini
相关产品推荐
相关产品推荐

