

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

# 创建 Amazon ECR 私有存储库以存储映像
<a name="repository-create"></a>

**重要**  
使用 AWS KMS (DSSE-KMS) 的双层服务器端加密仅在区域中 AWS GovCloud (US) 可用。

创建 Amazon ECR 私有存储库，然后使用存储库来存储您的容器映像。请按照以下步骤以使用 AWS 管理控制台创建私有存储库。

**创建存储库 (AWS 管理控制台)**

1. 在[https://console.aws.amazon.com/ecr/存储库](https://console.aws.amazon.com/ecr/repositories)中打开 Amazon ECR 控制台。

1. 从导航栏中，选择您创建存储库的区域。

1. 选择**私有存储库**，然后选择**创建存储库**。

1. 对于**存储库名称**，输入存储库的唯一名称。存储库名称可以自行指定 (例如 `nginx-web-app`)。或者，可以在其前面加上命名空间来将存储库分组到类别中 (例如 `project-a/nginx-web-app`)。
**注意**  
存储库名称最多可以包含 `256` 个字符。名称必须以字母开头，并且只能包含小写字母、数字、连字符、下划线和正斜杠。不支持使用双正斜杠。

1. 对于**映像标签可变性**，为存储库选择以下标签可变性设置之一。
   + **可变**：如果您想覆盖映像标签，请选择此选项。建议用于使用提取缓存操作的存储库，以确保 Amazon ECR 可以更新缓存的映像。此外，要禁用一些可变标签的标签更新，请在**可变标签排除项**文本框中输入标签名称或使用通配符 (\$1) 来匹配多个相似的标签。
   + **不可变**：如果您想阻止覆盖映像标签，则选择此选项，在推送带有现有标签的映像时，它适用于存储库中的所有标签和排除项。如果您尝试推送带有现有标签的映像，Amazon ECR 将返回 `ImageTagAlreadyExistsException`。此外，要为一些不可变的标签启用标签更新，请在**不可变标签排除项**文本框中输入标签名称或使用通配符 (\$1) 来匹配多个相似的标签。
**注意**  
不支持单个标签的可变性设置。

1. 要进行**加密配置**，请选择 **AES-256** 或** AWS KMS**。有关更多信息，请参阅 [静态加密](encryption-at-rest.md)。

   1.  如果选中， AWS KMS 则在单层加密和双层加密之间进行选择。使用 AWS KMS 或双层加密需要支付额外费用。有关更多信息，请参阅 [Amazon ECR 服务定价](https://aws.amazon.com/ecr/pricing/)。

   1. 默认情况下，选择带有别`aws/ecr`名的 AWS 托管密钥。此密钥是在您首次创建启用 AWS KMS 加密的存储库时在您的账户中创建的。选择**客户管理的密钥（高级）**以选择您自己的 AWS KMS 密钥。密 AWS KMS 钥必须与集群位于同一区域。选择**创建 AWS KMS 密钥**以导航到 AWS KMS 控制台以创建自己的密钥。

1. 对于**映像扫描设置**，尽管您可以在存储库级别为基本扫描指定扫描设置，但最佳实践是在私有注册表级别指定扫描配置。通过在私有注册表级别配置扫描设置，您可以选择增强扫描或基本扫描，同时还可以定义用于指定应该扫描哪些存储库的筛选条件。

1. 选择**创建**。

**创建存储库 (AWS CLI)**

1. 您可以使用 AWS CLI 带**aws ecr create-repository**命令的创建存储库。

   ```
   aws ecr create-repository \
               --repository-name hello-repository \
               --region region
   ```

1. 如果您定义了存储库创建模板，则可以通过使用熟悉的 Amazon ECR 推送命令推送带有所需存储库名称的映像来创建存储库。Amazon ECR 将使用您的存储库创建模板的预定义设置自动为您创建存储库。如果您尚未定义存储库创建模板，则对不存在的图像存储库的请求将失败。

   ```
   docker push aws_account_id.dkr.ecr.region.amazonaws.com/prefix/my-new-repository:tag
   ```

## 后续步骤
<a name="procedure_next_steps"></a>

要查看将映像推送到您的存储库的步骤，请选择存储库和**查看推送命令**。要详细了解如何将镜像推送到存储库，请参阅[将映像推送至 Amazon ECR 私有存储库](image-push.md)。