Docker pull error AWS ECR"未授权:需要身份验证"

时间:2018-05-06 17:27:30

标签: amazon-web-services docker amazon-ecr

我已登录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

2 个答案:

答案 0 :(得分:2)

Amazon有well documented如何使用AWS CLI允许docker对Amazon ECR注册表进行身份验证。

但是,get-login现在是deprecated。您将需要改用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

Tag是通常的图像元数据,例如: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

答案 1 :(得分:1)

  

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

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

试试这个

  

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