Amazon Elastic Container Registry 常见问题

一般性问题

Amazon ECR 是完全托管的容器注册表,可让开发人员轻松地共享和部署容器镜像和构件。Amazon ECR 与 Amazon Elastic Container Service(Amazon ECS)Amazon Elastic Kubernetes Service(Amazon EKS)AWS Lambda 集成,可简化您从开发到生产的工作流。Amazon ECR 使您无需操作自己的容器注册表,或使您不必为扩展底层基础设施而感到担心。Amazon ECR 将您的映像存储在高度可用、可扩展的基础架构中,使您能够为应用程序可靠部署容器。与 AWS Identity and Access Management (IAM) 的集成提供了对每个存储库的资源级控制,让您能够跨组织或与世界上任何人共享映像。

Amazon ECR 使您无需操作和扩展增强容器注册表功能所需的基础设施。Amazon ECR 使用 Amazon Simple Storage Service (S3) 进行存储,可确保您的容器映像高度可用且可访问,允许您可靠地为应用程序部署新的容器。Amazon ECR 通过 HTTPS 传输您的容器映像,然后自动对静态映像进行加密。您可以通过配置策略来管理每个存储库的权限并限制对 IAM 用户、角色或其他 AWS 账户的访问。Amazon ECR 与 Amazon ECS、Amazon EKS、AWS Fargate、AWS Lambda 和 Docker CLI 集成,使您能够简化开发和生产工作流。您可以使用 Docker CLI 轻松将容器映像从开发计算机推送到 Amazon ECR,并且 Amazon 容器编排工具或计算可以直接将其取回进行生产部署。

Amazon ECR 没有预付费用,也无需承诺。 您只需为公有或私有存储库中存储的数据量以及传输到 Internet 的数据量付费。有关其他详细信息,请参阅定价页面。

Amazon ECR 是一项区域性服务,旨在帮助您灵活部署映像。您可以将映像推送或提取至 Docker 集群所在的同一 AWS 区域,以便获得最佳性能。您也可以在 Docker 运行的任何位置(例如桌面和本地部署环境)访问 Amazon ECR。在不同区域间提取映像或将映像提取至 Internet 将造成额外的延迟并产生数据传输成本。

符合。Amazon ECR 拥有高度可用的容器注册表和网站,让您能够轻松共享或搜索公有容器软件。无论是否拥有 AWS 账户,任何人都可以使用 Amazon ECR 公开映像浏览馆搜索和下载常用容器映像,如操作系统、AWS 发布的映像和用于 Kubernetes 的 Helm 图表等文件。

私有存储库不提供内容搜索功能, 并且需要使用 AWS 账户凭证进行基于 IAM 的 Amazon 身份验证,才能提取映像。公有存储库具有描述性的内容,允许任何人在任何地方提取映像,而无需 AWS 账户或使用 IAM 凭证。公有存储库映像也在 Amazon ECR 公有库中可用。
 

您可以使用 Amazon ECR 上的 AWS CloudTrail 提供包含所有 API 操作的历史记录,例如哪位用户提取了映像以及何时在映像间移动了标签。管理员还可以了解哪些 EC2 实例提取了哪些映像。

使用 Amazon ECR

开始使用 Amazon ECR 的最佳方式是使用 Docker CLI 来推送和提取您的首个映像。有关更多信息,请访问我们的开始使用页面。

符合。您现在可以设置 AWS PrivateLink 端点,以允许您的实例从私有存储库中提取映像,而无须遍历公有 Internet。

Amazon ECR 提供了命令行界面和 API,可以创建、监控和删除存储库并设置存储库权限。您可以在 Amazon ECR 控制台中执行相同的操作,该控制台可通过 Amazon ECR 控制台的“存储库”部分进行访问。Amazon ECR 也已与 Docker CLI 集成,允许您在开发计算机上推送和提取映像并为映像添加标签。

您可以通过登录 AWS 账户并推送您创建的公有存储库,从而将映像发布到 Amazon ECR 公有库。对于每个账户,系统都将向您分配唯一的别名(可识别您发布的所有公有映像),以用于映像 URL。

符合。您可以请求自定义别名,例如您的组织或项目名称,除非该别名已被预留。用于识别 AWS 服务的名称将被预留。用于识别 AWS Marketplace 卖家的名称也可能被预留。我们会在几天内审查并批准您的自定义别名请求,除非您的别名请求违反 AWS 可接受的使用策略或其他 AWS 策略。

您可以使用熟悉的“docker pull”命令,加上映像的 URL 来进行提取。通过利用 Amazon ECR 公有库,使用发布者别名、映像名称或映像描述来查找映像,您可以轻松搜索该 URL。映像 URL 的格式为:public.ecr.aws/<alias>/<image>:<tag>,例如 public.ecr.aws/eks/aws-alb-ingress-controller:v1.1.5

符合。Amazon ECR 旨在帮助您将映像灵活地存储在所需的位置,并灵活地部署映像。您可以创建部署管道,继而构建映像,将其推送到位于一个区域的 Amazon ECR,然后 Amazon ECR 就能够将其轻松复制到其他区域和账户,以部署到多区域集群。

符合。您可以在 Docker 运行的任何位置(例如桌面和本地环境)访问 Amazon ECR。

符合。Amazon EKS、Amazon SageMaker 和 AWS Lambda 等服务,会将其官方公有容器映像和构件发布到 Amazon ECR。 

符合。Amazon ECR 与 Amazon ECS 集成,允许您轻松地存储、运行和管理在 Amazon ECS 上运行的应用程序的容器映像。您需要做的只是在您的任务定义中指定 Amazon ECR 存储库,然后 Amazon ECS 将为应用程序取得适当的映像。

符合。AWS Elastic Beanstalk 支持适用于单容器和多容器 Docker 环境的 Amazon ECR,允许您使用 AWS Elastic Beanstalk 轻松部署存储在 Amazon ECR 中的容器镜像。为此,您只需在您的 Dockerrun.aws.json 配置中指定 Amazon ECR 存储库,并将 AmazonEC2ContainerRegistryReadOnly 策略附加到您的容器实例角色。

Amazon ECR 目前支持 Docker Engine 1.7.0 及更高版本。

Amazon ECR 支持 Docker Registry V2 API 规范。

否。但是,Amazon ECR 可以与大量常用 CI/CD 解决方案集成,以提供此功能。请参阅 Amazon ECR 合作伙伴页面,了解更多信息。

符合。Amazon ECR 与 AWS Identity and Access Management(IAM)集成,支持身份联合验证,可对 AWS 管理控制台或 AWS API 进行授权访问。

Amazon ECR 支持 Docker Image Manifest V2(Schema 2 格式)。为维持与 Schema 1 镜像的向后兼容性,Amazon ECR 将继续接受以 Schema 1 格式上传的镜像。此外,当使用较低版本 (1.9 及更低版本) 的 Docker Engine 提取镜像时,Amazon ECR 可以执行向下转换,即将 Schema 2 镜像转换为 Schema 1 镜像。

符合。Amazon ECR 与 Open Container Initiative (OCI) 映像规范兼容,支持您推送和提取 OCI 映像和构件。提取镜像时,Amazon ECR 还可以在 Docker Image Manifest V2 (Schema 2) 镜像与 OCI 镜像之间进行转换。

安全性

Amazon ECR 可使用 Amazon S3 服务器端加密功能或 AWS KMS 加密功能自动对静态映像进行加密,并通过 HTTPS 传输容器映像。您可以使用 AWS Identity and Access Management (IAM) 用户和角色配置策略,以管理权限并控制对映像的访问,无需直接在 EC2 实例上管理凭证。

您可以使用基于 IAM 资源的策略来控制和监控哪些主体(例如 EC2 实例)可以访问您的容器映像,以及它们的访问时间、地点和方式。若要开启,请使用 AWS 管理控制台为您的存储库创建基于资源的策略。或者,您也可以使用示例策略,并通过 Amazon ECR CLI 将策略附加至存储库。

符合。 下面是一个创建和设置策略以进行跨账户映像共享的示例。

您可以让 Amazon ECR 自动扫描您的容器映像,以检查一系列操作系统的漏洞。您还可以使用 API 命令扫描映像,扫描完成时,Amazon ECR 将通过 API 和控制台通知您。为了增强映像扫描,您可以打开 Amazon Inspector