2016-08-02 41 views
3

我运行的Django里面泊坞窗gunicorn,我的切入点泊坞窗是:docker + gunicorn + nginx需要supervisord吗?

CMD [“gunicorn”,“myapp.wsgi”]

假设已经有运行的泊坞窗,当一个进程当系统停止时系​​统启动并重新启动Docker容器,我甚至需要使用supervisord吗?如果gunicorn会崩溃不会崩溃码头,然后重新启动?

回答

7

在Docker容器中唯一需要像supervisord(或其他进程管理器)的东西的时候,是否需要在容器启动时启动多个独立进程。

例如,如果您需要在同一容器中启动两个 nginx和gunicorn,则需要调查某种进程管理器。然而,更常见的解决方案是将这两个服务放在两个独立的容器中。像docker-compose这样的工具可以帮助管理多容器应用程序。

如果因为主进程退出而导致容器退出,如果您首次启动它时配置了重新启动策略(例如,通过docker run --restart=always ...),Docker将重新启动该容器。