Docker verwendet Supervisor zur Verwaltung von Prozessvorgängen

Docker verwendet Supervisor zur Verwaltung von Prozessvorgängen

Ein Docker-Container startet beim Start beispielsweise einen einzelnen Prozess, beispielsweise einen SSH- oder Apache-Daemon-Dienst.

Aber wir müssen oft mehrere Dienste auf einem Computer starten. Dafür gibt es viele Möglichkeiten. Am einfachsten ist es, mehrere Startbefehle in ein Startskript einzufügen und das Skript direkt beim Start zu starten. Eine andere Möglichkeit ist die Installation eines Prozessmanagement-Tools.

In diesem Abschnitt wird das Prozessverwaltungstool Supervisor verwendet, um mehrere Prozesse im Container zu verwalten. Mit Supervisor können wir die Prozesse, die wir ausführen möchten, besser steuern, verwalten und neu starten. Hier zeigen wir, wie SSH- und Apache-Dienste gleichzeitig verwendet werden.

Konfiguration

Erstellen Sie zunächst ein Dockerfile. Inhalt und Bestandteile werden weiter unten erläutert.

VON Ubuntu:13.04
MAINTAINER [email protected]
RUN echo "deb http://archive.ubuntu.com/ubuntu präzises Hauptuniversum" > /etc/apt/sources.list
Führen Sie apt-get update aus.
Führen Sie apt-get upgrade -y aus.

Installieren Sie SSH, Apache und Supervisor

Führen Sie den Befehl apt-get install -y openssh-server apache2 supervisor aus.
RUN mkdir -p /var/run/sshd
RUN mkdir -p /var/log/supervisor

Hier werden 3 Softwareprogramme installiert und 2 Verzeichnisse erstellt, die für den normalen Betrieb der SSH- und Supervisor-Dienste erforderlich sind.

KOPIEREN Sie supervisord.conf /etc/supervisor/conf.d/supervisord.conf

Fügen Sie die Supervisord-Konfigurationsdatei hinzu und kopieren Sie sie in das entsprechende Verzeichnis.

AUSSETZEN 22 80

CMD ["/usr/bin/supervisord"]

Hier ordnen wir die Ports 22 und 80 zu und starten den Dienst mithilfe des ausführbaren Pfads von supervisord.

Inhalt der Supervisor-Konfigurationsdatei

[Vorgesetzter]
nodaemon=wahr
[Programm:sshd]
Befehl=/usr/sbin/sshd -D
[Programm: Apache2]
Befehl = /bin/bash -c "Quelle /etc/apache2/envvars und exec /usr/sbin/apache2 -DFOREGROUND"

Die Konfigurationsdatei enthält Verzeichnisse und Prozesse. Der erste Abschnitt, supervsord, konfiguriert die Software selbst und führt sie mit dem Parameter nodaemon aus. Der zweite Abschnitt enthält die 2 zu steuernden Dienste. Jeder Abschnitt enthält ein Dienstverzeichnis und den Befehl zum Starten des Dienstes.

Anwendung

Erstellen Sie ein Bild.

$ sudo docker build -t test/supervisord.

Starten Sie den Supervisor-Container.

$ sudo docker run -p 22 -p 80 -t -i test/supervisords
25.11.2013 18:53:22,312 CRIT Supervisor wird als Root ausgeführt (kein Benutzer in der Konfigurationsdatei)
25.11.2013 18:53:22,312 WARNUNG Beim Parsen wurde die zusätzliche Datei „/etc/supervisor/conf.d/supervisord.conf“ eingefügt.
25.11.2013 18:53:22,342 INFO supervisord gestartet mit pid 1
25.11.2013 18:53:23,346 INFO erzeugt: „sshd“ mit PID 6
25.11.2013 18:53:23,349 INFO erzeugt: „Apache2“ mit PID 7

Verwenden Sie Docker Run, um den von uns erstellten Container zu starten. Verwenden Sie mehrere -p, um mehrere Ports zuzuordnen, sodass wir gleichzeitig auf SSH- und Apache-Dienste zugreifen können.

Mit dieser Methode können Sie ein Basisimage nur mit dem SSH-Dienst erstellen und dann Images basierend auf diesem Image erstellen.

Der obige Artikel über die Verwendung von Supervisor durch Docker zur Verwaltung von Prozessvorgängen ist der gesamte Inhalt, den der Herausgeber mit Ihnen teilt. Ich hoffe, er kann Ihnen als Referenz dienen. Ich hoffe auch, dass Sie 123WORDPRESS.COM unterstützen.

Das könnte Sie auch interessieren:
  • Docker View-Prozess, Speicher und Cup-Verbrauch
  • Dockerfile-Implementierungscode beim Starten von zwei Prozessen in einem Docker-Container
  • Detaillierte Erläuterung der Sicherheitskonfigurationselemente des Docker-Daemons
  • So konfigurieren und betreiben Sie den Docker-Daemon
  • Eine kurze Diskussion über Docker-Client und -Daemon
  • Detaillierte Erläuterung der Docker-Daemon-Konfiguration und -Protokolle
  • So interagieren Sie mit der Docker-Befehlszeile und dem Daemon-Prozess
  • Docker-Isolationstechnologie aus dem Prozess verstehen

<<:  Nützliche Codes zum Erstellen von Webseiten

>>:  Native JS realisiert den besonderen Effekt der Verbreitung von Liebe durch Mausbewegungen

Artikel empfehlen

Detaillierte Erklärung zum Erstellen geplanter MySql-Aufgaben in Navicat

Detaillierte Erklärung zum Erstellen geplanter My...

Benutzerdefinierte Tabbar-Komponente für das WeChat-Applet

In diesem Artikel wird der spezifische Code der b...

Natives js zum Erreichen eines einfachen Karusselleffekts

In diesem Artikel wird der spezifische Code von j...

Util-Modul im node.js-Tutorial-Beispiel – detaillierte Erklärung

Inhaltsverzeichnis Ausgehend von der Typbeurteilu...

MySQL-Join-Abfrage (Left Join, Right Join, Inner Join)

1. Allgemeine Verbindungen für MySQL INNER JOIN (...

CSS3 verwendet die Übergangseigenschaft, um Übergangseffekte zu erzielen

Detaillierte Beschreibung der Eigenschaften Der Z...

Vue+video.js implementiert Video-Wiedergabelisten

In diesem Artikel wird der spezifische Code von v...

Vue-cli erstellt ein Projekt und analysiert die Projektstruktur

Inhaltsverzeichnis 1. Geben Sie ein Verzeichnis e...

Ein einfaches Beispiel für die Verwendung von Vue3-Routing VueRouter4

Routenplanung vue-router4 behält den Großteil der...

Unterschied zwischen MySQL Btree-Index und Hash-Index

In MySQL werden die meisten Indizes (wie PRIMARY ...

Beispiel für die Verwendung von CASE WHEN beim Sortieren in MySQL

Vorwort In einem früheren Projekt wurde die Sorti...