Welche Vorteile bietet die Verwendung eines Prozessmanagers in einem Docker-Container?

7

Wie von Jerome erwähnt ,

Sie müssen auch einen Prozessmanager hinzufügen. Zum Beispiel Monit oder Supervisor. Dies liegt daran, dass Docker einen einzelnen Prozess überwacht. Wenn Sie mehrere Prozesse benötigen, müssen Sie einen auf der obersten Ebene hinzufügen, um sich um die anderen zu kümmern. Mit anderen Worten, Sie verwandeln einen schlanken und einfachen Behälter in etwas viel Komplizierteres.

Mir ist nicht ganz klar, warum Sie einen Prozessmanager in einem Container benötigen würden.

Kann mir jemand erklären, welche Vorteile es hat, einen Prozessmanager in einem Container zu haben? Wäre es nicht besser, systemd oder upstart die Prozesse abwickeln zu lassen, anstatt Ihrem Container zusätzliche Services hinzuzufügen?

Hyperfokus
quelle

Antworten:

5

Das ist die ganze Idee, systemd (oder upstart usw.) in einem Container zu verwenden. Docker wird meistens verwendet, um einen einzelnen Dienst pro Container auszuführen. Für eine komplexe Site benötigen Sie daher einen Container für den Webserver und einen weiteren für den Datenbankserver. Mit einem Prozessmanager können Sie beide im selben Container ausführen.

Welcher Ansatz besser ist, basiert auf Meinungen. Nach dem, was ich gesehen habe, ist das Ausführen von systemd in Docker ab Juni 2014 nicht einfach. Zum Beispiel gibt es den Fehler # 3629 - "das Ausführen von systemd in Docker Arch Container hängt oder segfaults". Weitere Informationen finden Sie auch unter "Ausführen von systemd in einem Docker-Container" .

Cristian Ciupitu
quelle