Verwenden von Supervisor im Andockfenster
Ich bin nicht gefragt, über den Einsatz der Betreuer mit dockers, sondern will nur meinen Verständnis überprüft.
Ich verstehe, dass docker läuft ein einzelner Prozess, der, wenn er ausgeführt wird. Auch, supervisor verwendet, wenn wir brauchen, um mehrere Prozess innerhalb des Containers.
Habe ich gesehen, dass mehrere Beispiele, wo ein container ist, angefangen von der Basis-image-und mehrere Dienst installiert sind und der Behälter verpflichtet sich zu einem neuen Bild, alle ohne supervisor.
So, meine grundlegenden Zweifel war, was ist der Unterschied zwischen beiden Ansätzen.
Mein Verständnis ist, dass, wenn docker-container beendet wird, sendet es ein kill-signal an den Prozess mit PID 1 PID 1 befasst sich mit der Kind-Prozess und Stoppt alle Kind-das ist genau das, was getan wird, von Vorgesetzten, während wir installieren können mehrere Prozess ohne supervisor-nur ein Prozess kann ausgeführt werden, wenn docker run ausgestellt ist und wenn der container gestoppt wird nur die PID 1 gesendet werden Signale und andere laufende Prozess wird nicht gestoppt werden würde.
Bestätigen Sie bitte, wie viel mein Verständnis über die Verwendung von supervisord korrekt ist.
Dank
InformationsquelleAutor der Frage user3275095 | 2015-10-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ja, obwohl es hängt davon ab, wie Sie Ihre Haupt-Prozess läuft (im Vordergrund oder hintergrund), und wie es erfasst die child-Prozesse.
Ist das, was in der Rubrik "Trapping-Signale in Docker Container"
Wenn die Anwendung im Vordergrund, d.h. die Anwendung ist der wichtigste Prozess in einem Behälter (PID1), könnte es handle Signale direkt.
Aber:
Das Problem wird noch detailliert in "Andockfenster und die PID 1 zombie Sensenmann problem"
Problem mit Docker:
Über ein Bild wie
phusion/baseimage-docker
Hilfe die Verwaltung einer (oder mehreren) Prozess(en), während eine Haupt-init-konform.Es nutzt
runit
stattsupervisord
für die multi-process-management:Diesem Bild enthält eine
my_init
- Skript die kümmert sich um die "Ernte" Problem.InformationsquelleAutor der Antwort VonC
Update Sept 2016 für docker 1.12 (Q4 2016/Q1 2017)
Arnaud Porterie nur twitted:
(commit eabae09)
Sehen PR-26061: "Hinzufügen init-Prozess für den zombie-Kampf-und Signalverarbeitung" (und PR-26736)
Dieser fügt ein kleines C-binary für den Kampf gegen zombies. Es ist montiert unter
/dev/init und ist vorangestellt, um die args vom Benutzer angegeben. Sie
aktivieren Sie es mittels daemon-flag, dockerd --init, wie es ist, deaktivieren Sie, indem
Standard für die Rückwärtskompatibilität mit vorhandenen.
Den docker-daemon hat nun die Möglichkeit,
InformationsquelleAutor der Antwort VonC