将 Amazon ECR 与 Amazon ECS 结合使用 - Amazon Elastic Container Service

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

将 Amazon ECR 与 Amazon ECS 结合使用

Amazon ECR 是一项托管 AWS Docker 注册服务。客户可以使用熟悉的 Docker CLI 推送、拉取和管理映像。Amazon ECR 提供安全、可扩展且可靠的注册表。Amazon ECR 使用 AWS IAM 支持具有基于资源的权限的私有 Docker 存储库,以便特定用户或 Amazon EC2 实例可以访问存储库和映像。开发人员可以使用 Docker CLI 编写和管理映像。

有关如何创建存储库、从 Amazon ECR 推拉图像以及在存储库上设置访问控制的更多信息,请参阅 Amazon Elastic Container Registry 用户指南

将 Amazon ECR 映像与 Amazon ECS 结合使用

您可以将 ECR 映像与 Amazon ECS 结合使用,但需要满足以下先决条件。

  • 您的容器实例必须至少使用版本 1.7.0 的 Amazon ECS 容器代理。最新版本的经 Amazon ECS 优化的 AMI 在任务定义中支持 ECR 映像。有关更多信息,包括最新的经 Amazon ECS 优化 AMI ID,请参阅 Amazon Elastic Container Service 开发人员指南中的 Amazon ECS 容器代理版本

  • 您用于容器实例的 Amazon ECS 容器实例角色 (ecsInstanceRole) 必须拥有 Amazon ECR 的以下 IAM policy 权限。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecr:BatchCheckLayerAvailability", "ecr:BatchGetImage", "ecr:GetDownloadUrlForLayer", "ecr:GetAuthorizationToken" ], "Resource": "*" } ] }

    如果您对容器实例使用 AmazonEC2ContainerServiceforEC2Role 托管策略,则您的角色将具有适当的权限。要检查您的角色是否支持 Amazon ECR,请参阅 Amazon Elastic Container Service 开发人员指南中的 Amazon ECS 容器实例 IAM 角色

  • 在 ECS 任务定义中,确保对 ECR 映像使用完整的 registry/repository:tag 命名。例如,aws_account_id.dkr.ecr.region.amazonaws.com/my-web-app:latest