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 Beispiele@docker.com
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

MySQL 5.6.27 Installations-Tutorial unter Linux

In diesem Artikel finden Sie das Installations-Tu...

mysql: [FEHLER] unbekannte Option '--skip-grant-tables'

MySQL-Datenbank meldet FEHLER 1045 (28000): Zugri...

JavaScript-Interview: So implementieren Sie die Methode zur Array-Abflachung

Inhaltsverzeichnis 1. Was ist Array-Flattening? 2...

Ausführliches Installationstutorial für MySQL Installer Community 5.7.16

Dieser Artikel zeichnet das ausführliche Tutorial...

Implementierung der Breakpoint-Wiederaufnahme im Vue-Video-Player

In einem aktuellen Projekt musste ich die Funktio...

Detaillierte Einführung in die JavaScript-Funktion

Durch Funktionen lassen sich beliebig viele Anwei...

Beispielanalyse der Verwendung gespeicherter MySQL-Prozeduren

Dieser Artikel beschreibt die Verwendung gespeich...

Einführung in die Vue3 Composition API

Inhaltsverzeichnis Überblick Beispiel Warum wird ...

So verweisen Sie auf jQuery in einer Webseite

Die Referenzierung ist über CDN (Content Delivery ...

So stellen Sie mit C++ eine Verbindung zu MySQL her

C++ stellt zu Ihrer Information eine Verbindung z...

Implementierung der CSS-Variableneinfügung im Vue3-Stil

Inhaltsverzeichnis Zusammenfassung Einfaches Beis...

So konfigurieren Sie /var/log/messages im Ubuntu-Systemprotokoll

1. Problembeschreibung Heute muss ich die Systemp...