监控 docker 个容器中的节点进程

Monitoring node processes within docker containers

我有一个 docker-compose 文件,它创建了 3 个 Node-js 容器和一个 Nginx 容器作为负载平衡的转发代理。

当 Node-js 容器失败时如何监控并重启它们?

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

__--==更新==--__

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

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

从docker 1.2开始,有所谓的restart policies。我想失败的节点实例可能会停止容器并且 return 非零。在这种情况下,您可以在容器级别指定 on-failure 策略。

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

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