Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 监视docker容器中的节点进程_Javascript_Node.js_Nginx_Docker_Docker Compose - Fatal编程技术网

Javascript 监视docker容器中的节点进程

Javascript 监视docker容器中的节点进程,javascript,node.js,nginx,docker,docker-compose,Javascript,Node.js,Nginx,Docker,Docker Compose,我有一个docker compose文件,它创建了3个节点js容器和一个Nginx容器作为负载平衡的前向代理 如果节点js容器出现故障,我如何监控并重新启动它们? 传统智慧认为所有容器都应该只有一个进程。因此,在节点容器上运行systemd(或类似的)将打破这种模式 更新===-- 正如@mishunika在下文中所述,如果节点进程失败,并且退出代码正确,并且容器上有正确的重新启动策略,它将重新启动。首先,这实际上取决于node.js容器在什么情况下可能会失败,如果失败,容器可能会停止并返回退出

我有一个docker compose文件,它创建了3个节点js容器和一个Nginx容器作为负载平衡的前向代理

如果节点js容器出现故障,我如何监控并重新启动它们?

传统智慧认为所有容器都应该只有一个进程。因此,在节点容器上运行systemd(或类似的)将打破这种模式

更新===--


正如@mishunika在下文中所述,如果节点进程失败,并且退出代码正确,并且容器上有正确的重新启动策略,它将重新启动。

首先,这实际上取决于node.js容器在什么情况下可能会失败,如果失败,容器可能会停止并返回退出状态代码

从docker 1.2开始,有所谓的。我假设一个失败的节点实例可能会停止容器并返回一个非零值。在这种情况下,您可以在容器级别指定故障时的策略

在compose中,您可以通过以下方式指定它:

container_name:
    build: .
    ...
    restart: on-failure

当您“失败的节点实例可能会停止容器”是100%,因为我在相关文档中找不到任何内容。如果容器中的进程退出,则容器停止,并且进程的退出状态在容器中可用。没有进程的容器是不存在的。不确定记录在哪里,这只是docker工作的基础之一。@AndrewMcLagan是的,正如dnephin所说,如果进程退出,容器就会停止。这是一件基本的事情。无论如何,正如我之前所说,这取决于你所说的“失败”是什么意思。例如,如果node.js进入无响应状态并且没有退出,则上述过程将无法工作。另外,supervisor和systemd都不会检测到这一点,但我认为nodejs这样的流行产品是不可能的。