我有一个容器是ECS任务定义的一部分,我将其标记为essential=false
,因为如果该容器出现故障,我不希望ECS代理删除该任务中的其他容器。在我的案例中,将容器设为“非必需”已经达到了预期的结果:该容器崩溃了,并且该任务上的其他容器没有被拆除或重新启动。
但是,我确实希望独立启动这个非必需的容器。有内置的方法可以做到这一点吗?基本上,如果容器退出,请在该容器上运行docker start
或docker restart
(我们目前必须手动执行此操作)。到目前为止,我在文档或浏览AWS控制台方面还没有任何运气。
答案 0 :(得分:2)
Docker提供了一个restart policy,在您的情况下(总是重新启动)很有用,但是基于this thread,ECS不支持重新启动现有容器。
建议并接受的解决方法是:
ECS通过“服务”的概念支持此用例。 服务不断使现实(已知状态)与 所需的状态,包括所需的运行任务数 指定。如果由服务启动的任务停止,则该服务将创建 一项新任务来替换它。服务可帮助您管理 您要运行的副本,部署,绑定到和解除绑定 负载均衡器,响应负载均衡器运行状况检查并集成 具有自动缩放功能,因此您的服务可以自动缩放。 您可以查看documentation以获得更多详细信息。