本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
创建自定义镜像并推送到 Amazon ECR
本页提供有关如何创建本地 Dockerfile、构建容器镜像以及如何将其添加到亚马逊弹性容器注册表 (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 规范。
Dockerfile
SageMaker 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 运行的更多信息,请参阅 Docker 文档中的正在运行的容器port
:port
。 确认服务器正在运行后,可以停止服务器并关闭所有内核,然后再继续。输出中可以查看指令。
将 Docker 镜像添加到亚马逊 ECR
要向 Amazon ECR 添加容器映像,您需要执行以下操作。
-
创建 Amazon ECR 存储库。
-
登录您的默认注册表。
-
将映像推送到 Amazon ECR 存储库。
注意
Amazon ECR 存储库必须与您要将图像附加到的域名 Amazon Web Services 区域 相同。
生成容器镜像并将其推送到 Amazon ECR
-
首先为接下来的 Amazon CLI 命令设置变量。
ACCOUNT_ID=
account-id
REGION=aws-region
ECR_REPO_NAME=ecr-repository-name
-
是您的账户 ID。你可以在任何 Amazon 主机页面的右上角找到它。例如,SageMaker AI 控制台account-id
。 -
是你 Amazon Web Services 区域 的 Amazon A SageMaker I 域名。你可以在任何 Amazon 主机页面的右上角找到它。aws-region
-
是您在此处定义的 Amazon 弹性容器注册表存储库的名称。要查看您的 Amazon ECR 存储库,请访问亚马逊 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 存储库后,您可以在 Amaz on ECR