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

推送Docker镜像到AWS ECR提示no basic auth credentials如何解决

问题根因

执行docker login时使用普通用户身份,登录凭证默认写入当前用户的~/.docker/config.json文件;但执行docker push时添加了sudo切换为root用户,root用户读取的是/root/.docker/config.json文件,该文件不存在对应ECR的登录凭证,因此触发认证错误。

解决方案

方案1:配置普通用户免sudo执行docker命令(推荐)

将当前用户加入docker用户组,后续无需加sudo即可执行所有docker操作:

# 添加当前用户到docker用户组
sudo usermod -aG docker $USER
# 刷新用户组配置(或直接退出当前终端重新登录生效)
newgrp docker

生效后直接执行推送命令即可:

docker push xxxxxxx.dkr.ecr.us-east-2.amazonaws.com/my-app:1.0

方案2:使用sudo身份执行ECR登录

如果需要保留sudo执行docker命令的习惯,直接在登录命令前添加sudo,将凭证写入root用户的docker配置:

aws ecr get-login-password --region us-east-2 | sudo docker login --username AWS --password-stdin xxxx.dkr.ecr.us-east-2.amazonaws.com

登录成功后再执行sudo推送命令即可。

额外排查点

如果上述方案未解决问题,可逐一检查以下配置:

  • 确认登录命令中的ECR仓库地址与push命令中的地址完全一致,核对账号前缀、区域字段是否匹配
  • 确认当前使用的AWS身份(访问密钥/IAM角色)具备ECR推送权限,需包含ecr:PutImage、ecr:InitiateLayerUpload、ecr:UploadLayerPart、ecr:CompleteLayerUpload相关权限策略
  • 确认AWS CLI配置的默认区域与ECR仓库所在区域一致

内容的提问来源于stack exchange,提问作者Hossam Radwan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 23:45:09