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