一般性问题

问:什么是 Amazon Elastic Container Registry (Amazon ECR)?
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 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 如何定价?
Amazon ECR 没有预付费用,也无需承诺。 您只需为公有或私有存储库中存储的数据量以及传输到 Internet 的数据量付费。有关其他详细信息,请参阅 定价页面。
 
问:Amazon ECR 是一项全球服务吗?
Amazon ECR 是一项区域性服务,旨在帮助您灵活部署映像。您可以将映像推送或提取至 Docker 集群所在的同一 AWS 区域,以便获得最佳性能。您也可以在 Docker 运行的任何位置(例如桌面和本地部署环境)访问 Amazon ECR。在不同区域间提取映像或将映像提取至 Internet 将造成额外的延迟并产生数据传输成本。
 
问:Amazon ECR 可以托管公有容器映像吗?
可以。Amazon ECR 拥有高度可用的容器注册表和网站,让您能够轻松共享或搜索公有容器软件。无论是否拥有 AWS 账户,任何人都可以使用 Amazon ECR 公有库 搜索和下载常用容器映像,如操作系统、AWS 发布的映像和用于 Kubernetes 的 Helm 图表等文件。
 
问:Amazon ECR 公有证书和私有存储库有什么区别?
私有存储库不提供内容搜索功能, 并且需要使用 AWS 账户凭证进行基于 IAM 的 Amazon 身份验证,才能提取映像。公有存储库具有描述性的内容,允许任何人在任何地方提取映像,而无需 AWS 账户或使用 IAM 凭证。公有存储库映像也在 Amazon ECR 公有库中可用。

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

使用 Amazon ECR

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

问:我是否可以在 VPC 内访问 Amazon ECR?
是。您现在可以设置 AWS PrivateLink 端点,以允许您的实例从私有存储库中提取映像,而无须遍历公有 Internet。

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

问:我如何使用 Amazon ECR 公开共享映像?
您可以通过登录 AWS 账户并推送您创建的公有存储库,从而将映像发布到 Amazon ECR 公有库。对于每个账户,系统都将向您分配唯一的别名(可识别您发布的所有公有映像),以用于映像 URL。
 
问:我能否为我的公有映像使用自定义别名?
可以。您可以请求自定义别名,例如您的组织或项目名称,除非该别名已被预留。用于识别 AWS 服务的名称将被预留。用于识别 AWS Marketplace 卖家的名称也可能被预留。我们会在几天内审查并批准您的自定义别名请求,除非您的别名请求违反 AWS 可接受的使用策略或其他 AWS 策略。
 
问:我如何从 Amazon ECR 中提取公有映像?
您可以使用熟悉的“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 是否可以跨 AWS 区域复制映像?
是。Amazon ECR 旨在帮助您将映像灵活地存储在所需的位置,并灵活地部署映像。您可以创建部署管道,继而构建映像,将其推送到位于一个区域的 Amazon ECR,然后 Amazon ECR 就能够将其轻松复制到其他区域和账户,以部署到多区域集群。

问:我是否可以在本地环境中使用 Amazon ECR?
可以。您可以在 Docker 运行的任何位置(例如桌面和本地环境)访问 Amazon ECR。

问:Amazon ECR 公有库是否提供 AWS 发布的映像?
是。Amazon EKS、Amazon SageMaker 和 AWS Lambda 等服务,会将其官方公有容器映像和构件发布到 Amazon ECR。 

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

问:Amazon ECR 是否可与 AWS Elastic Beanstalk 协同工作?
是。AWS Elastic Beanstalk 支持适用于单容器和多容器 Docker 环境的 Amazon ECR,允许您使用 AWS Elastic Beanstalk 轻松部署存储在 Amazon ECR 中的容器镜像。为此,您只需在您的 Dockerrun.aws.json 配置中指定 Amazon ECR 存储库,并将 AmazonEC2ContainerRegistryReadOnly 策略附上您的容器实例角色。

问:Amazon ECR 支持哪些版本的 Docker Engine?
Amazon ECR 目前支持 Docker Engine 1.7.0 及更高版本。

问:Amazon ECR 支持哪些版本的 Docker Registry API?
Amazon ECR 支持 Docker Registry V2 API 规范。

问:Amazon ECR 是否能从 Dockerfile 中自动构建映像?
否。但是,Amazon ECR 可以与大量常用 CI/CD 解决方案集成,以提供此功能。请参阅 Amazon ECR 合作伙伴页面,了解更多信息。

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

问:Amazon ECR 支持哪些版本的 Docker Image Manifest 规范?
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) 格式?
是。Amazon ECR 与 Open Container Initiative (OCI) 映像规范兼容,支持您推送和提取 OCI 映像和构件。提取映像时,Amazon ECR 还可以在 Docker Image Manifest V2 (Schema 2) 映像与 OCI 映像之间进行转换。

安全性

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

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

问:我是否可以在不同 AWS 账户间共享我的映像?
可以。下面是一个创建和设置策略以进行跨账户映像共享的示例。

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

了解有关 Amazon ECR 定价的更多信息

访问定价页面
准备好开始构建了吗?
开始使用 Amazon ECR
还有更多问题?
联系我们