4

我正在尝试为 SageMaker 提取预先构建的 docker 映像。我能够成功地docker login使用 ECR(我的 AWS 凭证)。当我尝试提取图像时,我得到了标准no basic auth credentials

也许我误解了……我认为那些 ECR URL 是公开的。

$(aws ecr get-login --region us-west-2 --no-include-email)

docker pull 246618743249.dkr.ecr.us-west-2.amazonaws.com/sagemaker-scikit-learn
4

2 回答 2

3

您能否在问题中显示您的 ECR 登录命令和拉取命令?

对于 SageMaker 预构建映像 520713654638.dkr.ecr.us-west-2.amazonaws.com/sagemaker-mxnet:1.3.0-cpu-py3

我要做的是:

  1. 登录 ECR

$(aws ecr get-login --no-include-email --registry-ids 520713654638 --region us-west-2)

  1. 拉取图片

docker pull 520713654638.dkr.ecr.us-west-2.amazonaws.com/sagemaker-mxnet:1.3.0-cpu-py3

这些图像是公开可读的,因此您可以从任何 AWS 账户中提取它们。我猜你失败的原因是你没有在登录时指定 --registry-ids 。但是,如果您可以提供您的脚本以供其他人识别问题所在,那就更好了。

于 2019-05-06T20:21:30.813 回答
2

自 2021 年 8 月 29 日起,get-login已弃用,并且答案中的命令将不起作用。因此,使用 AWS CLI v2,这对我有用:

您需要在您的机器上登录 AWS CLI,然后将密码通过管道传输到您的 docker 登录,如下所示:

$ sudo aws ecr get-login-password --region <region> | sudo docker login --username AWS --password-stdin <account-id>.dkr.ecr.<region>.amazonaws.com

在此处找到离您最近的 aws 区域中的 repo 的帐户 ID ;以及带有标签的可用图像。

然后你应该能够像这样拉图像:

$ sudo docker pull 720646828776.dkr.ecr.ap-south-1.amazonaws.com/sagemaker-scikit-learn:0.23-1-cpu-py3
于 2021-08-29T05:37:30.840 回答