我正在使用 Docker 在容器中运行 java REST 服务。如果我在容器之外,那么我可能会使用进程管理器/主管来确保 java 服务在遇到奇怪的一次性错误时重新启动。我看到一些关于在容器内使用supervisord 的帖子,但似乎它们主要专注于运行多个服务,而不是仅仅保持一个服务的运行。
管理容器中运行的服务的常用方法是什么?我应该只在容器本身上使用一些内置的 Docker 东西,而不是尝试包含进程管理器吗?
对于单服务容器,您不应在 Docker 容器内使用进程管理程序。使用流程管理器可以有效地隐藏服务的运行状况,使问题更难以被发现。
如果服务失败,您应该依靠容器编排层(可能是 Docker 本身,或者 Docker Swarm 或 Kubernetes 等更高级别的工具)来重新启动容器。
对于 Docker(或 Docker Swarm),这意味着在容器上设置重启策略。
| 归档时间: |
|
| 查看次数: |
541 次 |
| 最近记录: |