我正在尝试为 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
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
对于 SageMaker 预构建映像 520713654638.dkr.ecr.us-west-2.amazonaws.com/sagemaker-mxnet:1.3.0-cpu-py3
我所做的是:
$(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 CLI,然后将密码通过管道传输到您的 docker 登录名,如下所示:登录最近区域的 ECR 后,您将需要确定要下拉的图像名称和标签。容器名称和标签的格式记录在
$ sudo aws ecr get-login-password --region <region> | sudo docker login --username AWS --password-stdin <account-id>.dkr.ecr.<region>.amazonaws.com
在离您最近的 aws 区域中查找存储库的账户 ID 此处;以及带有标签的可用图像此处(按地区)。
here,但乍一看对我来说并不明显。
根据本指南,Docker镜像名称和标签的格式如下:
{account}.dkr.ecr.{region}.amazonaws.com/{framework}:{framework_version}-{processor_type}-{python_version}
docker pull
命令是:
docker pull 763104351884.dkr.ecr.us-east-1.amazonaws.com/pytorch-training:2.0.0-cpu-py310