2016-08-02 15 views
3

ich django mit gunicorn innen Docker läuft, mein Einstiegspunkt für Docker ist:Wird Supervisord für Docker + Gunicorn + Nginx benötigt?

CMD [ "gunicorn", "myapp.wsgi"]

dort Unter der Annahme, ist bereits ein Prozess, der die Docker ausgeführt werden, wenn Das System startet und startet den Andock-Container, wenn es anhält. Muss ich überhaupt Supervisord verwenden? Wenn Gunicorn abstürzt, stürzt es nicht ab und startet neu?

Antwort

7

Das einzige Mal, wenn Sie etwas wie Supervisord (oder einen anderen Prozess-Supervisor) in einem Docker-Container benötigen, ist, wenn Sie mehrere unabhängige Prozesse innerhalb des Containers starten müssen, wenn es gestartet wird.

Zum Beispiel, wenn Sie sowohl Nginx und Gunicorn in den gleichen Container starten müssten, müssten Sie eine Art Prozess-Supervisor untersuchen. Eine viel gebräuchlichere Lösung wäre jedoch, diese beiden Dienste in zwei separate Container zu stellen. Ein Tool wie docker-compose hilft bei der Verwaltung von Multi-Container-Anwendungen.

Wenn ein Container beendet wird, weil der Hauptprozess beendet wird, startet Docker diesen Container neu, wenn Sie beim ersten Start eine Neustartrichtlinie konfiguriert haben (z. B. über docker run --restart=always ...).

Verwandte Themen