将多架构映像推送到 Amazon ECR 私有存储库 - 亚马逊 ECR

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

将多架构映像推送到 Amazon ECR 私有存储库

您可以通过创建和推送 Docker 清单列表将多架构映像推送到 Amazon ECR 存储库。清单列表是通过指定一个或多个镜像名称创建的镜像列表。在大多数情况下,清单列表是根据具有相同功能但适用于不同操作系统或架构的图像创建的。清单列表不是必需项。有关更多信息,请参阅 Docker 清单

清单列表可以像其他亚马逊ECR图片一样在亚马逊ECS任务定义或 Amazon EKS pod 规范中提取或引用。

先决条件

将多架构 Docker 镜像推送到亚马逊存储库 ECR
  1. 在您打算将映像推送到的亚马逊ECR注册表中对您的 Docker 客户端进行身份验证。必须针对每个注册表获得授权令牌,令牌有效期为 12 小时。有关更多信息,请参阅 Amazon 中的私有注册表身份验证 ECR

    要向 Amazon ECR 注册表对 Docker 进行身份验证,请运行aws ecr get-login-password命令。将身份验证令牌传递给docker login命令时,请使用用户名的值AWS并指定URI要向其进行身份验证的 Amazon ECR 注册表。如果对多个注册表进行身份验证,则必须针对每个注册表重复该命令。

    重要

    如果收到错误,请安装或更新到最新版本的 AWS CLI。有关更多信息,请参阅AWS Command Line Interface 《用户指南》中的安装 AWS Command Line Interface

    aws ecr get-login-password --region region | docker login --username AWS --password-stdin aws_account_id.dkr.ecr.region.amazonaws.com
  2. 列出存储库中的镜像,确认镜像标签。

    aws ecr describe-images --repository-name my-repository
  3. 创建 Docker 清单列表。manifest create 命令验证引用的镜像是否已存在于您的存储库中,并在本地创建清单。

    docker manifest create aws_account_id.dkr.ecr.region.amazonaws.com/my-repository aws_account_id.dkr.ecr.region.amazonaws.com/my-repository:image_one_tag aws_account_id.dkr.ecr.region.amazonaws.com/my-repository:image_two
  4. (可选) 检查 Docker 清单列表。这使您能够确认清单列表中引用的每个镜像清单的大小和摘要。

    docker manifest inspect aws_account_id.dkr.ecr.region.amazonaws.com/my-repository
  5. 将 Docker 清单列表推送到您的亚马逊ECR存储库。

    docker manifest push aws_account_id.dkr.ecr.region.amazonaws.com/my-repository