本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
创建自定义映像并将其推送到 Amazon ECR
此页面提供了有关如何创建本地 Dockerfile、构建容器映像以及将其添加到 Amazon Elastic Container Registry(Amazon ECR)的说明。
注意
在以下示例中,未指定标签,系统将默认使用标签 latest。如果要指定标签,需在映像名称末尾追加 :。有关更多信息,请参阅 Docker 文档中的 Docker 映像标签tag
创建本地 Dockerfile 并构建容器映像
按照以下说明操作,创建带所需软件和依赖项的 Dockerfile。
创建 Dockerfile
-
首先为接下来的Amazon CLI命令设置变量。
LOCAL_IMAGE_NAME=local-image-name是您在此处定义的本地设备上的容器映像的名称。local-image-name -
创建符合自定义映像规范中规范的名为
Dockerfile的基于文本的文档。可以在 Dockerfile 示例中找到受支持的应用程序的
Dockerfile示例。注意
如果您要将自己的镜像带到 SageMaker Unified Studio,则需要遵循亚马逊 Unifie SageMaker d Studio 用户指南中的 Dockerfile 规范。
DockerfileSageMaker Unified Studio 的示例可以在亚马逊 Unified Studio 用户指南的 Docker SageMaker f ile 示例中找到。 -
在包含
Dockerfile的目录下,使用以下命令构建 Docker 映像。句点(.)指定Dockerfile应该在构建命令的上下文中。docker build -t ${LOCAL_IMAGE_NAME} .构建完成后,您可以使用以下命令列出您的容器映像信息。
docker images -
(可选)可使用以下命令测试映像。
docker run -it ${LOCAL_IMAGE_NAME}在输出中,您会发现服务器正在一个 URL(如
http://127.0.0.1:8888/...)上运行。可通过将该 URL 复制到浏览器来测试映像。如果这样做不起作用,您可能需要在 docker run 命令中添加
-p。此选项会将容器上的公开端口映射到主机系统上的端口。有关 docker run 的更多信息,请参阅 Docker 文档中的正在运行的容器port:port。 在确认服务器正在运行后,可以停止服务器并关闭所有内核,然后再继续操作。可在输出中查看说明。
件 Docker 映像添加到 Amazon ECR
要将容器映像添加到 Amazon ECR,您需要执行以下操作。
-
创建 Amazon ECR 存储库。
-
登录到默认注册表。
-
将映像推送到 Amazon ECR 存储库。
注意
Amazon ECR 存储库必须与您要将图像附加到的域名Amazon Web Services 区域相同。
构建容器映像并将其推送到 Amazon ECR
-
首先为接下来的Amazon CLI命令设置变量。
ACCOUNT_ID=account-idREGION=aws-regionECR_REPO_NAME=ecr-repository-name-
是您的账户 ID。你可以在任何Amazon主机页面的右上角找到它。例如,SageMaker AI 控制台account-id。 -
是你Amazon Web Services 区域的 Amazon A SageMaker I 域名。你可以在任何Amazon主机页面的右上角找到它。aws-region -
是您在此处定义的 Amazon Elastic Container Registry 存储库的名称。要查看您的 Amazon ECR 存储库,请参阅 Amazon ECR 控制台ecr-repository-name。
-
-
登录 Amazon ECR,然后登录 Docker。
aws ecr get-login-password \ --region ${REGION} | \ docker login \ --username AWS \ --password-stdin ${ACCOUNT_ID}.dkr.ecr.${REGION}.amazonaws.com在身份验证成功后,您将收到一条登录成功消息。
重要
如果收到错误,您可能需要安装或升级到最新版本的 Amazon CLI。有关更多信息,请参阅《Amazon Command Line Interface 用户指南》中的安装 Amazon Command Line Interface。
-
使用与 Amazon ECR 兼容的格式标记映像以将其推送到存储库。
docker tag \ ${LOCAL_IMAGE_NAME} \ ${ACCOUNT_ID}.dkr.ecr.${REGION}.amazonaws.com/${ECR_REPO_NAME} -
使用 Amazon CLI 创建一个 Amazon ECR 存储库。要使用 Amazon ECR 控制台创建存储库,请参阅创建 Amazon ECR 私有存储库以存储映像。
aws ecr create-repository \ --region ${REGION} \ --repository-name ${ECR_REPO_NAME} -
将映像推送到 Amazon ECR 存储库。也可以为 Docker 映像添加标签。
docker push ${ACCOUNT_ID}.dkr.ecr.${REGION}.amazonaws.com/${ECR_REPO_NAME}
在成功将映像添加到 Amazon ECR 存储库后,可以在 Amazon ECR 控制台