将 docker 图像推送到 aws ecr 不会提供基本的身份验证凭据

Pushing a docker image to aws ecr gives no basic auth credentials

当我尝试将 docker 图像推送到 aws ecr 时,它无法提供以下内容

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

7d9a9c94af8d: Preparing 
f77d412f54b5: Preparing 
629960860aca: Preparing 
f019278bad8b: Preparing 
8ca4f4055a70: Preparing 
3e207b409db3: Waiting 
no basic auth credentials

虽然登录成功

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

Login Succeeded

并且/home/[我的用户]/.docker/config.json文件有以下数据

{
    "auths": {
        "xxxx.dkr.ecr.us-east-2.amazonaws.com": {
            "auth": "QVsVkhaRT...."
        }
    }
}

我正在使用 aws cli 版本 2.3.5

aws --version
aws-cli/2.3.5 Python/3.8.8 Linux/5.8.0-63-generic exe/x86_64.ubuntu.20 prompt/off

我正在使用 docker 版本 20.10.10

docker --version 
Docker version 20.10.10, build b485636

我该如何解决这个问题?

你是 运行 sudo docker push

这意味着您帐户中的凭据将不会被使用。相反,Docker 正试图在 root 用户帐户中使用(不存在的)凭据。

将您的命令更改为 docker push 应该就足够了。