推送 Docker 镜像 - Amazon ECR

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

推送 Docker 镜像

您可以使用 docker push 命令将容器镜像推送到 Amazon ECR 存储库。Amazon ECR 还支持创建和推送用于多架构镜像的 Docker 清单列表。清单列表中引用的每个镜像都必须已经被推送到您的存储库。有关更多信息,请参阅 推送多架构镜像

推送 Docker 镜像到 Amazon ECR 存储库

在推送镜像之前,Amazon ECR 存储库必须存在。有关更多信息,请参阅 创建私有存储库

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

    要对 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. 如果在要推送的注册表中还没有您的镜像存储库,请创建它。有关更多信息,请参阅 创建私有存储库

  3. 识别要推送的本地镜像。运行 docker images 命令列出系统中的容器镜像。

    docker images

    在生成的命令输出中,可以通过 repository:tag 值或镜像 ID 识别镜像。

  4. 通过要使用的 Amazon ECR 注册表、存储库和可选镜像标签名称组合标记您的镜像。注册表格式为 aws_account_id.dkr.ecr.us-west-2.amazonaws.com。存储库名称应与您为镜像创建的存储库一致。如果省略镜像标签,我们将假定标签为 latest

    以下示例使用 ID e9ae3c220b23 作为 aws_account_id.dkr.ecr.us-west-2.amazonaws.com/my-repository:tag 来标记本地镜像。

    docker tag e9ae3c220b23 aws_account_id.dkr.ecr.us-west-2.amazonaws.com/my-repository:tag
  5. 使用 docker push 命令推送镜像:

    docker push aws_account_id.dkr.ecr.us-west-2.amazonaws.com/my-repository:tag
  6. (可选) 通过重复 步骤 4步骤 5,向镜像应用任何其他标签并将这些标签推送到 Amazon ECR。