创建存储库 - Amazon ECR
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

创建存储库

在将 Docker 镜像推送到 Amazon ECR 之前,必须先创建用于存储镜像的存储库。您可以使用 Amazon ECR、AWS 管理控制台 和 AWS CLI 开发工具包来创建 AWS 存储库。

创建存储库

  1. 通过以下网址打开 Amazon ECR 控制台:https://console.amazonaws.cn/ecr/repositories

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

  3. 在导航窗格中,选择 Repositories

  4. 存储库页面上,选择创建存储库

  5. 对于 Repository name (存储库名称),输入存储库的唯一名称。可以自行指定存储库名称(例如 nginx-web-app)。或者,可以在其前面加上一个命名空间,以将存储库分组到类别中(例如 project-a/nginx-web-app)。

    注意

    名称必须以字母开头,并且只能包含小写字母、数字、连字符 (-)、下划线 (_) 和正斜杠 (/)。

  6. 对于 Tag immutability (标签不变性),选择存储库的标签可变性设置。使用不可变标签配置的存储库会阻止覆盖映像标签。有关更多信息,请参阅映像标签可变性

  7. 对于 Scan on push (推送扫描),选择存储库的映像扫描设置。配置为在推送时扫描的存储库会在推送映像时启动映像扫描。如果您要在不同的时间启动映像扫描,则需要手动启动映像扫描。有关更多信息,请参阅映像扫描

  8. 对于 KMS encryption (KMS 加密),选择是否使用 启用存储库中映像的加密AWS Key Management Service。默认情况下,当启用 KMS 加密时, Amazon ECR 使用别名为 的 AWS 托管客户主密钥 (aws/ecrCMK)。首次创建启用了 KMS 加密的存储库时,系统会在您的账户中创建此主密钥。有关更多信息,请参阅静态加密

  9. 启用 KMS 加密后,选择 Customer encryption settings (advanced) (客户加密设置(高级)) 以选择您自己的 CMK。CMK 必须与 集群位于同一区域。选择 Create an AWS KMS key (创建 密钥) 以导航到 AWS KMS 控制台来创建您自己的密钥。

  10. 选择 Create repository

  11. (可选)选择您创建的存储库,然后选择 View push commands (查看推送命令) 以查看将映像推送到新存储库的步骤。

    1. 检索 docker login 命令,此命令可用于通过将控制台中的 aws ecr get-login 命令粘贴到终端窗口中来对注册表验证 Docker 客户端的身份。

      注意

      AWS CLI 从版本 1.9.15 开始提供 get-login 命令;但对于较新的 Docker 版本(17.06 或更高版本),我们建议使用 1.11.91 版或更高版本。可以使用 aws --version 命令查看 AWS CLI 版本。如果您使用的是 Docker 17.06 或更高版本,请在 get-login 后包含 --no-include-email 选项。如果收到 Unknown options: --no-include-email 错误,请安装最新版本的 AWS CLI。有关更多信息,请参阅 AWS Command Line Interface 用户指南 中的 安装 AWS 命令行界面

    2. 运行上一步中返回的 docker login 命令。此命令提供一个在 12 小时内有效的授权令牌。

      重要

      在您执行此 docker login 命令时,系统上的其他用户可以在进程列表 (ps -e) 显示中看到该命令字符串。由于 docker login 命令包含身份验证凭证,因此系统上的其他用户可按此方式查看凭证会带来风险。他们可能会使用凭证获取对您的存储库的推送和拉取访问权限。如果您所在的系统不安全,则应考虑此风险,并通过省略 -p password 选项并在系统提示时输入密码来以交互方式登录。

    3. (可选)如果您有要让映像推送的 Dockerfile,请为新存储库构建并标记映像。将控制台中的 docker build 命令粘贴到终端窗口。确定您与您的 Dockerfile 位于同一目录中。

    4. 通过将控制台中的 docker tag 命令粘贴到终端窗口中来为 ECR 注册表和新存储库标记映像。此控制台命令假设您的映像是通过上一步中的 Dockerfile 构建得来的。如果您未通过 Dockerfile 构建映像,请将 repository:latest 的第一个实例更换为要推送的本地映像的映像 ID 或映像名称。

    5. 通过将 docker push 命令粘贴到终端窗口中来将新标记的映像推送到 ECR 存储库。

    6. 选择 Close