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 des Linux-Texteditors Vim

Vim ist ein leistungsstarker Vollbild-Texteditor ...

js realisiert Warenkorb-Add- und Subtraktions- sowie Preisberechnungsfunktionen

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

Detaillierte Erläuterung der grundlegenden Datentypen in mysql8.0.19

MySQL-Basisdatentypen Übersicht über gängige MySQ...

Zusammenfassung der Lösung für den Webpack -v-Fehler von Vue

Xiaobai lernte Vue kennen, dann lernte er Webpack...

MySQL 5.6.37 (zip) Download Installationskonfiguration Grafik-Tutorial

In diesem Artikel finden Sie das Download-, Insta...

Grundlegender Installationsprozess von mysql5.7.19 unter winx64 (Details)

1. Herunterladen https://dev.mysql.com/downloads/...

So ändern Sie die Standardspeicher-Engine in MySQL

MySQL-Speicher-Engine: Der MySQL-Server verwendet...

Detaillierte Erklärung der Lösung für verweigerte Berechtigungen in Linux

Zugriff verweigert: Der Grund hierfür ist: Es lie...

Ein einfaches Tutorial zur Verwendung des MySQL-Protokollsystems

Inhaltsverzeichnis Vorwort 1. Fehlerprotokoll 2. ...

Implementierungsprozess des Lupeneffekts im Javascript-Beispielprojekt

Inhaltsverzeichnis Vorwort Fall: Nachahmung des L...

Grundlegende Befehle für MySQL-Datenbankoperationen

1. Erstellen Sie eine Datenbank: Daten erstellen ...