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

问题描述 投票:0回答:3

我正在尝试为 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
    
amazon-web-services docker amazon-sagemaker amazon-ecr
3个回答
11
投票
自 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 区域中查找存储库的账户 ID 此处;以及带有标签的可用图像此处(按地区)。

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

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

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

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

我所做的是:

    登录ECR

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



    拉取图片

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



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


0
投票

这个答案仍然是正确的,但我添加了一些附加信息,希望其他人发现它有用:

您需要在计算机上登录 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 区域中查找存储库的账户 ID 此处;以及带有标签的可用图像此处(按地区)。

登录最近区域的 ECR 后,您将需要确定要下拉的图像名称和标签。容器名称和标签的格式记录在

here,但乍一看对我来说并不明显。

根据

本指南,Docker镜像名称和标签的格式如下:
{account}.dkr.ecr.{region}.amazonaws.com/{framework}:{framework_version}-{processor_type}-{python_version}


就我而言,我想拉取 pytorch 训练 2.0.0 CPU 映像,在下面的文档中用红色圈出:

这意味着我最终的

docker pull

命令是:

docker pull 763104351884.dkr.ecr.us-east-1.amazonaws.com/pytorch-training:2.0.0-cpu-py310
    
© www.soinside.com 2019 - 2024. All rights reserved.