配置私有镜像复制 - Amazon ECR
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

配置私有镜像复制

为每个区域分别配置私有注册表复制设置。按照以下步骤,使用 Amazon Web Services Management Console或 Amazon CLI 为您的私有注册表配置复制。有关常用复制的示例,请参阅 私有镜像复制示例

  1. https://console.aws.amazon.com/ecr/repositories 打开 Amazon ECR 控制台。

  2. 从导航栏中,选择要配置注册表复制设置的区域。

  3. 在导航窗格中,选择私有注册表

  4. 私有注册表页面上的复制部分,选择编辑

  5. 复制页面上,选择添加复制规则

  6. 目标类型页面上,选择是启用跨区域复制、跨账户复制还是两者,然后选择下一步

  7. 如果启用了跨区域复制,则在配置目标区域中,选择一个或多个目标区域,然后选择下一步

  8. 如果启用了跨账户复制,则在跨账户复制中,选择注册表的跨账户复制设置。对于目标帐户,输入目标账户的账户 ID 以及复制到其中的一个或多个目标区域。选择目标账户 + 以将其他账户配置为复制目标。

    重要

    要进行跨账户复制,目标账户必须配置注册表权限策略,以允许执行复制。有关更多信息,请参阅 私有注册表权限

  9. (可选) 在添加筛选条件页面上,为复制规则指定一个或多个筛选条件,然后选择添加。对要与复制操作相关联的每个筛选条件重复此步骤。必须将筛选条件指定为存储库名称前缀。如果未添加筛选条件,则复制所有存储库的内容。添加所有筛选条件后,选择下一步

  10. 在存储库的审核和提交页面上,查看复制规则配置,然后选择提交规则

  1. 创建包含要为注册表定义的复制规则的 JSON 文件。复制配置最多可以包含 10 个规则,所有规则最多包含 25 个唯一目标,每个规则最多包含 100 个筛选条件。要在自己的账户中配置跨区域复制,请指定自己的账户 ID。有关更多示例,请参阅 私有镜像复制示例

    { "rules": [{ "destinations": [{ "region": "destination_region", "registryId": "destination_accountId" }], "repositoryFilters": [{ "filter": "repository_prefix_name", "filterType": "PREFIX_MATCH" }] }] }
  2. 创建注册表的复制配置。

    aws ecr put-replication-configuration \ --replication-configuration file://replication-settings.json \ --region us-west-2
  3. 确认您的注册表设置。

    aws ecr describe-registry \ --region us-west-2

私有镜像复制示例

以下各示例演示了私有映像复制的常见应用场景。

示例:配置跨区域复制到单个目标区域

下面显示了在单个注册表中配置跨区域复制的示例。此示例假定您的账户 ID 为 111122223333,并且您正在区域 (而不是 us-west-2) 中指定此复制配置。

{ "rules": [ { "destinations": [ { "region": "us-west-2", "registryId": "111122223333" } ] } ] }

示例:使用存储库筛选条件配置跨区域复制

下面显示了为与前缀名称值匹配的存储库配置跨区域复制的示例。此示例假定您的账户 ID 为111122223333,您正在区域 (而不是 us-west-1) 中指定此复制配置,并且具有前缀为 prod 的存储库。

{ "rules": [{ "destinations": [{ "region": "us-west-1", "registryId": "111122223333" }], "repositoryFilters": [{ "filter": "prod", "filterType": "PREFIX_MATCH" }] }] }

示例:配置跨区域复制到多个目标区域

下面显示了在单个注册表中配置跨区域复制的示例。此示例假定您的账户 ID 为 111122223333,并且您正在区域 (而不是 us-west-1us-west-2) 中指定此复制配置。

{ "rules": [ { "destinations": [ { "region": "us-west-1", "registryId": "111122223333" }, { "region": "us-west-2", "registryId": "111122223333" } ] } ] }

示例:配置跨账户复制

下面显示了为注册表配置跨账户复制的示例。此示例将配置复制到 444455556666 账户和 us-west-2 区域。

重要

要进行跨账户复制,目标账户必须配置注册表权限策略,以允许进行复制。有关更多信息,请参阅 私有注册表权限

{ "rules": [ { "destinations": [ { "region": "us-west-2", "registryId": "444455556666" } ] } ] }

示例:在配置中指定多个规则

以下显示了配置注册表的多个复制规则的示例。此示例配置 111122223333 账户的复制,其具备一个规则,即将复制前缀为 prod 的存储库复制到 us-west-2 区域,并将带有前缀 test 的存储库复制到 us-east-2 区域。复制配置最多可以包含 10 个规则,每个规则最多指定 25 个目标。

{ "rules": [{ "destinations": [{ "region": "us-west-2", "registryId": "111122223333" }], "repositoryFilters": [{ "filter": "prod", "filterType": "PREFIX_MATCH" }] }, { "destinations": [{ "region": "us-east-2", "registryId": "111122223333" }], "repositoryFilters": [{ "filter": "test", "filterType": "PREFIX_MATCH" }] } ] }