将多架构映像推送到 Amazon ECR 私有存储库
通过创建和推送 Docker 清单列表,您可以将多架构映像推送到 Amazon ECR 存储库。清单列表是通过指定一个或多个镜像名称创建的镜像列表。大多数情况下,清单列表是从提供相同功能但适用于不同操作系统或架构的映像创建的。清单列表不是必需项。有关更多信息,请参阅 Docker 清单
清单列表可以像其他 Amazon ECR 镜像一样在 Amazon ECS 任务定义或 Amazon EKS Pod 规范中提取或引用。
先决条件
-
在您的 Docker CLI 中,开启实验性功能。有关实验性功能的信息,请参阅 Docker 文档中的 Experimental features
。 -
在推送镜像之前,Amazon ECR 存储库必须存在。有关更多信息,请参阅 创建 Amazon ECR 私有存储库以存储映像。
-
在创建 Docker 清单之前,必须将映像推送到您的存储库。有关如何推送镜像的信息,请参阅 将 Docker 映像推送到 Amazon ECR 私有存储库。
将多架构 Docker 镜像推送到 Amazon ECR 存储库
-
向要向其推送镜像的 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
.dkr.ecr.aws_account_id
region
.amazonaws.com -
列出存储库中的镜像,确认镜像标签。
aws ecr describe-images --repository-name
my-repository
-
创建 Docker 清单列表。
manifest create
命令验证引用的镜像是否已存在于您的存储库中,并在本地创建清单。docker manifest create
/aws_account_id
.dkr.ecr.region
.amazonaws.com.rproxy.goskope.commy-repository
/aws_account_id
.dkr.ecr.region
.amazonaws.com.rproxy.goskope.commy-repository
:image_one_tag
/aws_account_id
.dkr.ecr.region
.amazonaws.com.rproxy.goskope.commy-repository
:image_two
-
(可选) 检查 Docker 清单列表。这使您能够确认清单列表中引用的每个镜像清单的大小和摘要。
docker manifest inspect
/aws_account_id
.dkr.ecr.region
.amazonaws.com.rproxy.goskope.commy-repository
-
将 Docker 清单列表推送到您的 Amazon ECR 存储库。
docker manifest push
/aws_account_id
.dkr.ecr.region
.amazonaws.com.rproxy.goskope.commy-repository