一般性问题
问:什么是 Amazon Elastic Container Registry(ECR)?
Amazon Elastic Container Registry(ECR)是一种完全托管的 Docker 容器注册表,开发人员可使用它轻松存储、管理和部署 Docker 容器映像。Amazon ECR 与 Amazon Elastic Container Service(ECS)集成,从而简化了生产工作流的开发。Amazon ECR 使您无需操作自己的容器存储库,也不必为扩展底层基础设施而担心。Amazon ECR 将您的镜像存储在高度可用且可扩展的架构中,使您能够为应用程序可靠部署容器。与 Amazon Identity and Access Management(IAM)集成,使您可以对每个存储库进行资源级别的控制。
问:为什么应该使用 Amazon ECR?
Amazon ECR 使您无需操作和扩展增强容器注册表功能所需的基础设施。Amazon ECR 使用 Amazon S3 进行存储,可确保您的容器镜像高度可用且可访问,使您可以为您的应用程序可靠地部署新容器。Amazon ECR 通过 HTTPS 传输您的容器镜像,然后自动对镜像进行静态加密。您可以通过配置策略来管理每个存储库的权限并限制对 IAM 用户、角色或其他亚马逊云科技账户的访问。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 用户、角色或其他亚马逊云科技账户的访问。
问:我可以在 Amazon ECR 上启用哪些合规性功能?
您可以使用 Amazon ECR 上的 Amazon CloudTrail 提供包含所有 API 操作的历史记录,例如,哪位用户提取了镜像以及何时在镜像间移动了标签。管理员还可以了解哪些 EC2 实例提取了哪些镜像。
使用 Amazon ECR
问:如何开始使用 Amazon ECR?
开始使用 Amazon ECR 的最佳方式是使用 Docker CLI 来推送和提取您的首个镜像。请查看我们的文档以便了解更多信息。
问:要管理我的存储库和镜像,最佳方式是什么?
Amazon ECR 提供了命令行界面和 API,用于创建、监控和删除存储库并设置存储库权限。您可以在 Amazon ECR 管理控制台中执行相同的操作,该控制台可通过 Amazon ECS 控制台的“存储库”部分进行访问。Amazon ECR 还集成了 Docker CLI,可支持您在开发计算机上推送和提取镜像并为镜像添加标签。
问:Amazon ECR 是否可以跨区域复制镜像?
可以。Amazon ECR 旨在帮助您将镜像灵活地存储在所需的位置,并灵活地部署镜像。您可以创建部署管道来构建镜像,将它们推送至某个区域的 Amazon ECR,然后 Amazon ECR 可以自动将这些镜像复制到其他区域和账户,以部署至多区域群集。
问:我能否在本地环境中使用 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 是否可与 Amazon Elastic Beanstalk 协同工作?
可以。Amazon Elastic Beanstalk 支持适用于单容器和多容器 Docker 环境的 Amazon ECR,让您能够使用 Amazon 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 Identity and Access Management 集成,可支持联合身份验证,实现对亚马逊云科技管理控制台或 Amazon 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 自动对静态映像进行加密,并通过 HTTPS 传输容器映像。您可以使用 Amazon Identity and Access Management(IAM)用户和角色配置策略,以管理权限并控制对镜像的访问,而无需直接在 EC2 实例上管理凭证。
问:如何使用 Amazon Identity and Access Management 控制权限?
您可以使用基于 IAM 资源的策略来控制和监控哪些主体(例如 EC2 实例)可以访问您的容器镜像,以及它们的访问时间、地点和方式。首先,使用管理控制台为您的存储库创建基于资源的策略。或者,您也可以使用示例策略,并通过 Amazon ECR CLI 将策略挂载至存储库。
问:我能否在亚马逊云科技账户之间共享我的镜像?
可以,以下是一个创建和设置跨账户镜像共享策略的示例。