2

我登录到 AWS ECR repo 并触发了 pull 命令但给出了这个错误

# $(aws ecr get-login --no-include-email)
Login Succeeded

# docker pull 432354543235.dkr.ecr.us-east-1.amazonaws.com/abc-example:1.1.1                                        
Pulling repository 432354543235.dkr.ecr.us-east-1.amazonaws.com/abc-example:1.1.1
unauthorized: authentication required
4

2 回答 2

5

Amazon 已经详细记录了如何使用 AWS CLI 允许 docker 对 Amazon ECR 注册表进行身份验证。

但是,get-login现在已弃用。您将需要get-login-password改用。

他们在他们的文档中指出,您可以将身份验证令牌传递给 docker login 命令。您还需要指定要对其进行身份验证的 Amazon ECR 注册表 URI。

例如

$ aws ecr get-login-password --region us-east-1 \
  | docker login --username AWS --password-stdin \
  123456789012.dkr.ecr.us-east-1.amazonaws.com

然后我可以根据registry/repository[:tag].

Registry是您的帐户 ID 和区域 ECR 端点的组合,例如:

123456789012.dkr.ecr.us-east-1.amazonaws.com

Repository是存储图像的位置的名称,例如:

myrepo

标签是通常的图像元数据,例如:latest

下面是一个验证和拉取图像的完整示例:

$ aws ecr get-login-password --region ap-southeast-2 \
  | docker login --username AWS --password-stdin \
  123456789012.dkr.ecr.ap-southeast-2.amazonaws.com

$ docker pull 123456789012.dkr.ecr.ap-southeast-2.amazonaws.com/myrepo:latest
latest: Pulling from myrepo
5bed26d33875: Pull complete
Digest: sha256:aabbccdd
Status: Downloaded newer image for 123456789012.dkr.ecr.ap-southeast-2.amazonaws.com/myrepo:latest
123456789012.dkr.ecr.ap-southeast-2.amazonaws.com/myrepo:latest
于 2020-04-06T08:20:49.457 回答
1

aws ecr get-login --no-include-email

这仅打印登录命令。您需要执行此调用返回的登录命令。

尝试这个

eval $(aws ecr get-login --no-include-email)

于 2018-05-13T19:46:52.407 回答