我有一个docker-compose文件,可以创建3个Node-js容器和一个Nginx容器作为转发代理来进行负载均衡。
如何在Node-js容器发生故障时监控并重新启动它们?
传统观念认为所有容器应该只有一个过程。因此,在节点容器上运行systemd(或类似的)会破坏该模式。
__-- ==更新== --__
正如@mishunika所述,如果节点进程因正确的退出代码失败并且容器上有正确的重启策略,它将重新启动。
答案 0 :(得分:1)
首先,它实际上取决于node.js容器可能在什么情况下失败,如果它这样做,容器应该停止并返回退出状态代码。
从docker 1.2开始,有所谓的restart policies。我想失败的节点实例可能会停止容器并返回非零值。在这种情况下,您可以在容器级别指定 on-failure 策略。
在撰写时,您可以通过以下方式指定:
container_name:
build: .
...
restart: on-failure