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

How do I pull the pre-built docker images for SageMaker?

我正在尝试为 SageMaker 提取 pre-built docker images。我能够成功 docker login 到 ECR(我的 AWS 凭证)。当我尝试拉取图像时,我得到了标准 no basic auth credentials.

也许我误会了...我以为这些 ECR URL 是 public。

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

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

能否在问题中展示一下您的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

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

自 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 区域 here; and available images with tags here 按区域查找存储库的帐户 ID。

那么你应该可以像这样拉取镜像:

$ sudo docker pull 720646828776.dkr.ecr.ap-south-1.amazonaws.com/sagemaker-scikit-learn:0.23-1-cpu-py3