如何为 SageMaker 提取预构建的 docker 镜像?

Rya*_*her 10 amazon-web-services docker amazon-ecr amazon-sagemaker

我正在尝试为 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
Run Code Online (Sandbox Code Playgroud)

Nav*_*ala 12

自 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
Run Code Online (Sandbox Code Playgroud)

在此处查找距您最近的 aws 区域中存储库的账户 ID ;以及按地区划分的带有标签的可用图像。

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

$ sudo docker pull 720646828776.dkr.ecr.ap-south-1.amazonaws.com/sagemaker-scikit-learn:0.23-1-cpu-py3
Run Code Online (Sandbox Code Playgroud)


小智 4

您能否在问题中显示您的 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 。但如果您可以向其他人提供脚本来识别问题所在,那就更好了。