我们是否应该使用监管者来保持流程在Docker容器中运行?

我们是否应该使用监管者来保持流程在Docker容器中运行?,docker,Docker,我正在使用Docker在容器中运行java REST服务。如果我在容器之外,那么我可能会使用流程管理器/主管来确保java服务在遇到奇怪的一次性错误时重新启动。我看到一些关于在容器内部使用supervisord的帖子,但似乎他们主要关注运行多个服务,而不是保持一个服务不变 管理容器中运行的服务的常用方法是什么?我是否应该在容器本身上使用一些内置的Docker内容,而不是尝试包含流程管理器?您不应该在Docker容器中为单个服务容器使用流程主管。使用流程主管可以有效地隐藏服务的运行状况,从而在出现

我正在使用Docker在容器中运行java REST服务。如果我在容器之外,那么我可能会使用流程管理器/主管来确保java服务在遇到奇怪的一次性错误时重新启动。我看到一些关于在容器内部使用supervisord的帖子,但似乎他们主要关注运行多个服务,而不是保持一个服务不变


管理容器中运行的服务的常用方法是什么?我是否应该在容器本身上使用一些内置的Docker内容,而不是尝试包含流程管理器?

您不应该在Docker容器中为单个服务容器使用流程主管。使用流程主管可以有效地隐藏服务的运行状况,从而在出现问题时更难检测

如果服务失败,您应该依靠容器编排层(可能是Docker本身)或更高级别的工具(如Docker Swarm或Kubernetes)重新启动容器


对于Docker或Docker Swarm,这意味着在容器上设置重新启动策略。

对于单个服务容器,不应在Docker容器内使用流程主管。使用流程主管可以有效地隐藏服务的运行状况,从而在出现问题时更难检测

如果服务失败,您应该依靠容器编排层(可能是Docker本身)或更高级别的工具(如Docker Swarm或Kubernetes)重新启动容器


对于Docker或Docker Swarm,这意味着在容器上设置重新启动策略。

多进程主管也倾向于吞下其托管进程的日志,因此您需要在容器的临时文件系统中查找Docker日志,而不仅仅是运行Docker日志。多进程主管也倾向于吞下其托管进程的日志,因此,您需要在容器的临时文件系统中进行挖掘,而不仅仅是运行docker日志。