如何在AWS Fargate中更新容器映像

时间:2018-01-04 16:51:04

标签: amazon-web-services amazon-ecs aws-fargate

我已将初始docker镜像推入存储库并使用该图像创建了AWS Fargate,有没有办法更新图像,因为我的docker镜像中有一些更改。

4 个答案:

答案 0 :(得分:4)

很简单:

aws ecs update-service --cluster <cluster> --service <service> --force-new-deployment

答案 1 :(得分:0)

您可以使用default-launch-type为应用程序 FARGATE 创建群集后编写配置文件,并在任务定义中定义相应的参数,即ecs-params.yaml

以下是存储在Amazon ECR中的nginx:latest图片的一个文件。

version: '2'
services:
  web:
    image: account-id.dkr.ecr.ap-southeast-1.amazonaws.com/nginx:latest
    ports:
      - "80:80"
    logging:
      driver: awslogs
      options:
        awslogs-group: awslogs-web
        awslogs-region: ap-southeast-1
        awslogs-stream-prefix: web-nginx

您只需更改映像,就可以在更新群集内的服务时将更新的映像部署到部署中。

如果您更新了应用程序的Docker镜像,则可以使用该镜像创建新的任务定义并将其部署到您的服务中。服务调度程序使用最小健康百分比和最大百分比参数(在服务的部署配置中)来确定部署策略。

注意:任务定义中的Execution Role提供从容器注册表中提取图像的权限。

您可以在此处找到文档指南,AWS ECS Update Service

答案 2 :(得分:0)

创建新版本的任务定义并使用最新标签更新容器并更新服务。

答案 3 :(得分:0)

请参见AWS documentation

  

如果您已经更新了应用程序的Docker映像,则可以使用该映像创建一个新的任务定义,并将其部署到您的服务中。

     

注意

     

如果更新后的Docker映像使用的标记与服务中现有任务定义中的标记相同(例如,my_image:latest),则无需为任务定义创建新的修订版。您可以使用以下过程更新服务,保留服务的当前设置,然后选择“强制新部署”。部署启动的新任务在启动时会从存储库中提取当前图像/标签组合。当您指定LATEST时,将Fargate任务更新为使用最新的平台版本时,也会使用“强制新部署”选项。例如,如果您指定LATEST并且您正在运行的任务正在使用1.0.0平台版本,并且您希望它们使用更新的平台版本重新启动。

https://docs.aws.amazon.com/AmazonECS/latest/userguide/update-service.html#update-service