【发布时间】:2018-08-26 13:58:53
【问题描述】:
我有一个容器,它是 ECS 任务定义的一部分,我已将其标记为 essential=false,因为如果此容器出现故障,我不希望 ECS 代理关闭任务中的其他容器。在我的情况下,使容器“非必需”已经达到了预期的结果:容器崩溃,并且任务中的其他容器不会被删除或重新启动。
但是,我确实希望这个非必要的容器能够独立重新启动。有没有内置的方法可以做到这一点?基本上,如果容器退出,在该容器上运行docker start 或docker restart(我们目前必须手动执行)。到目前为止,我对文档或探索 AWS 控制台都没有任何运气。
【问题讨论】:
-
您/您是否尝试过将容器作为 ECS 服务的一部分运行?如果此容器可能崩溃并且不会影响您任务中的其他容器,您可以将其作为单独的任务运行吗?
-
您是否尝试过使用 hypervisord 的其他容器镜像? Hypervisord 允许您重新启动容器进程,如果它崩溃并确保容器正在运行.. 因此,使用 hypervisord 容器将不会退出.. 如果它崩溃,您的应用程序将由 hpervisord 重新启动..
-
@arco444 好主意!这将需要我们的团队目前无法做出的一些改变,但这听起来是一个非常有希望的选择。如果我们实现这一点,我会在这里更新。谢谢!
-
@AnkushTehale 有趣的想法!我会调查一下。谢谢!
-
@elethan 您是否通过转换为服务解决了您的问题?我也遇到了这个问题,我在一个任务定义下拥有多个容器的原因是为了在集群内的容器之间进行通信。
标签: amazon-web-services docker aws-ecs