一般性问题
私有存储库不提供内容搜索功能, 并且需要使用 AWS 账户凭证进行基于 IAM 的 Amazon 身份验证,才能提取映像。公有存储库具有描述性的内容,允许任何人在任何地方提取映像,而无需 AWS 账户或使用 IAM 凭证。公有存储库映像也在 Amazon ECR 公有库中可用。
使用 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?
可以。您可以在 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 定价的更多信息