在 ECS 任务中重新启动单个退出的容器

ele*_*han 5 amazon-web-services docker aws-ecs

我有一个容器,它是 ECS 任务定义的一部分,我已将其标记为essential=false,因为如果此容器出现故障,我不希望 ECS 代理拆除任务中的其他容器。在我的情况下,使容器“非必要”已经达到了预期的结果:容器崩溃,任务中的其他容器不会被删除或重新启动。

但是,我确实希望独立重新启动这个非必要的容器。有没有内置的方法来实现这一点?基本上,如果容器退出,运行docker startdocker restart在该容器上(我们目前必须手动执行)。到目前为止,我在文档或探索 AWS 控制台方面没有任何运气。

Fab*_*ano 3

Docker 提供了一个对您的情况有用的重启策略(--restart always),但是,基于此线程,ECS 不支持重新启动现有容器。

建议并接受的解决方法是:

ECS 通过“服务”的概念支持此用例。服务不断地使现实(已知状态)与所需状态相匹配,包括您指定的所需运行任务数。如果服务启动的任务停止,该服务将创建一个新任务来替换它。服务可帮助您管理要运行的副本数量、部署、与负载均衡器的绑定和解除绑定、响应负载均衡器运行状况检查,并与自动扩展集成,以便您的服务可以自动扩展或扩展。您可以查看文档以了解更多详细信息。