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

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

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

清单列表可以像其他 Amazon ECR 镜像一样在 Amazon ECS 任务定义或 Amazon EKS Pod 规范中提取或引用。

先决条件

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

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

    重要

    如果收到错误,请安装或更新到最新版本的 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 清单列表推送到您的 Amazon ECR 存储库。

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