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

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

创建存储库

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

创建存储库

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

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

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

  4. Repositories (存储库) 页面上,选择 Create repository (创建存储库)

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

    注意

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

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

  7. 对于 Scan on push (推送扫描),选择存储库的映像扫描设置。配置为在推送时进行扫描的存储库将在每次推送映像时启动映像扫描,否则需要手动启动映像扫描。有关更多信息,请参阅映像扫描

  8. 对于 KMS加密,选择是否使用 AWS Key Management Service. 默认情况下,启用KMS加密时 Amazon ECR 使用 AWS 托管客户主密钥(CMK)和别名 aws/ecr,这是您第一次在您的帐户中创建启用KMS加密的存储库时创建的。有关更多信息,请参阅静态加密

  9. 启用KMS加密后,选择 客户加密设置(高级) 选择您自己的CMK。CMK必须与群集位于同一区域。选择 创建 AWS KMS 键 导航至 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