docker + gunicorn + nginx需要supervisord吗?

我在docker里面用gunicorn运行django,我的入口点是docker:

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

假设在系统启动时已经有一个运行docker的进程,并在停止时重新启动docker容器,那么我是否甚至需要使用supervisord? 如果gunicorn会崩溃不会崩溃的docker,然后重新启动?

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

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

如果一个容器由于主进程退出而退出,那么当你第一次启动它时(例如,通过docker run --restart=always ... ),如果你configuration了重启策略,Docker将会重启那个容器。