Amazon Elastic Container Registry 入门

创建免费账户

作为 AWS 免费套餐的一部分,您可以免费开始使用 Amazon Elastic Container Registry。Amazon ECR 每月会向新客户提供 500MB 的存储,为期一年。

查看 AWS 免费套餐详细信息 »


问:什么是 Amazon Elastic Container Registry (ECR)?
Amazon Elastic Container Registry (ECR) 是完全托管的安全 Docker 容器注册表,可使开发人员轻松存储、管理和部署 Docker 容器映像。Amazon ECR 与 Amazon Elastic Container Service (ECS) 集成,从而简化生产工作流程的开发。Amazon ECR 使您无需操作自己的容器注册表,或使您不必为扩展底层基础设施而感到担心。Amazon ECR 将您的映像存储在高度可用且可扩展的架构中,使您能够为应用程序可靠部署容器。与 AWS Identity and Access Management (IAM) 集成使您可以对每个存储库进行资源级别的控制。

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

问:Amazon ECR 如何定价?
Amazon ECR 没有预付费用或长期合约。您只需为存储在资源库的数据量以及传输至 Internet 的数据量付费。有关其他详细信息,请参阅定价页面。

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

问:Amazon ECR 可以托管公有容器映像吗?
Amazon ECR 目前支持私有映像。不过,使用基于 IAM 资源的权限,您可以为每个存储库配置策略,以支持访问 IAM 用户、角色或其他 AWS 账户。

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

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

问:我是否可以在 VPC 内访问 Amazon ECR?
要在 VPC 内使用 Amazon ECR,您的实例必须能够与 Internet 通信。为此,您可以使用 Amazon VPC NAT 网关

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

问:Amazon ECR 是否可以跨区域复制映像?
否。Amazon ECR 旨在帮助您将映像灵活地存储在所需的位置,并灵活地部署映像。您可以创建部署管道,用于构建映像,将映像推送至选定区域内的 Amazon ECR,然后将映像部署至 Docker 集群。

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

问:Amazon ECR 是否提供 Amazon Linux 容器映像?
是。Amazon ECR 提供 Amazon Linux 容器映像,详细步骤可参见论坛。客户可以用这些容器映像在其基于 Linux 的 Docker 环境中运行工作负载。容器映像带有极少的软件包,能够安装全套 Amazon Linux AMI 软件包。与 EC2 中的 Amazon Linux AMI 类似,Amazon Linux 容器映像会从 Amazon 获得持续的更新,其形式为安全更新、滚动发布和软件包更新。

问: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 集成,支持联合身份验证,可对 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 可使用 S3 服务器端加密功能自动对静态映像进行加密,并通过 HTTPS 传输容器映像。您可以使用 AWS Identity and Access Management (IAM) 用户和角色配置策略,以管理权限并控制对映像的访问,无需直接在 EC2 实例上管理凭证。

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

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