Beispiel für den automatischen Start eines Anwendungsdienstes in einem Docker-Container

Beispiel für den automatischen Start eines Anwendungsdienstes in einem Docker-Container

Wenn Sie möchten, dass der Anwendungsdienst im Docker-Container automatisch gestartet wird, wenn der Container gestartet wird. Sie müssen nur das Dienststartskript in die Docker-Datei schreiben und dann die Docker-Datei verwenden, um das Image zu rekonstruieren:

  • Schreiben Sie ein Selbststartskript für den Anwendungsdienste
  • Schreiben einer Docker-Datei
  • Rekonstruktion des Bildes
  • Öffnen Sie den Behälter

Schreiben Sie ein Skript zum Selbststart des Dienstes (Dockerd).
(Nehmen Sie Tomcat als Beispiel)

#!/bin/bash
#
# 
#
# chkconfig: 345 98 30
# Beschreibung: Tomcat-Programm.
# Prozessname: Tomcat
# Quellfunktionsbibliothek.
. /etc/rc.d/init.d/Funktionen
# Quellnetzwerkkonfiguration.
#. /etc/sysconfig/netzwerk


prog="Tomcat"

Prüfprozess()
{
  chkret=`ps -ef |grep $prog |grep -v "grep" |wc -l`
    return $chkret
}

Start()
{
    cd /usr/local/tomcat/bin/
   ./startup.sh
  echo "Dienst $prog gestartet!"
}

#/usr/sbin/nscd &
/usr/sbin/sshd -D &
während [wahr]
Tun
        DNSIP=172.18.3.179
          ping=`ping -c 3 $DNSIP|awk 'NR==7 {print $4}'`
        wenn [[ $ping -eq "3" ]]
        Dann
            brechen
        fi
    Schlaf 3
Erledigt

während [wahr]
Tun
    Prüfprozess
     wenn [[ $chkret -eq "0" ]]
        Dann
              Start
     #nscd -i Hosts
        anders 
          echo "Dienst $prog läuft."

        fi
    Schlaf 60
Erledigt
Ausfahrt 0

Schreiben einer Docker-Datei

VON Kater

WARTUNGSPERSÖNLICH liu „[email protected]“

Füge dockerd /etc/rc.d/init.d/ hinzu
RUN chmod 777 /etc/rc.d/init.d/dockerd

ENV JAVA_HOME /usr/local/jdk1.6.0_30
ENV-PFAD $JAVA_HOME/bin:$PATH
ENV-KLASSENSPATH .:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

CMD /etc/rc.d/init.d/dockerd

Unter ihnen fügt ADD die Skripte im selben Verzeichnis zum angegebenen Speicherort des Bildes hinzu, und ENV legt die Java-Umgebungsvariable fest (sehr wichtig, das selbststartende Skript kann ohne diesen Satz nicht erfolgreich ausgeführt werden). Es kann nur einen CMD-Befehl geben, mit dem Befehle ausgeführt werden, wenn der Container gestartet wird. Es kann auch ein Skript sein.

Rekonstruktion des Bildes
**passieren
Docker Build -t neuer Imagename.
Ein neues Bild wurde erfolgreich erstellt

Öffnen Sie den Behälter

docker run -d -h="s" –name="s" neuer Imagename

Dann stellte ich fest, dass Tomcat bereits gestartet war

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Führen Sie die Shell oder das Programm im Docker-Container auf dem Host aus.
  • Verwenden Sie Shell-Skripte, um Docker-Dienste stapelweise zu starten und zu stoppen
  • So beheben Sie den Startfehler des Docker-Containers
  • Detaillierte Erläuterung der Lösung für den Fehler bei der Verwendung von systemctl zum Starten des Dienstes im Docker
  • Fügen Sie die Portzuordnung hinzu, nachdem der Docker-Container gestartet wurde
  • Flume in einem Docker-Container ausführen und starten, ohne laufende Protokolle auszugeben
  • Detaillierte Erläuterung der Startreihenfolge des Docker-Containers mithilfe eines Shell-Skripts

<<:  64-Bit-CentOs7-Quellcodeinstallation MySQL-5.6.35 Prozessfreigabe

>>:  Vue-Formular-Post-Anforderung kombiniert mit Servlet zur Realisierung der Datei-Upload-Funktion

Artikel empfehlen

Neuer Ansatz zum Umschalten der Tab-Leiste mit zwei Auswahlmöglichkeiten in Vue

Problembeschreibung Wenn wir an einem Projekt arb...

Der Unterschied und die Verwendung von distinct und row_number() over() in SQL

1 Einleitung Wenn wir SQL-Anweisungen schreiben, ...

So erstellen Sie eine Baidu-Totlink-Datei

Baidu definiert zwei Arten von toten Linkformaten:...

Grundlegende Anwendungsbeispiele für Listener in Vue

Inhaltsverzeichnis Vorwort 1. Grundlegende Verwen...

Installieren Sie MySQL (einschließlich utf8) mit Docker unter Windows/Mac

Inhaltsverzeichnis 1. Docker-Installation auf dem...

Tipps zur Optimierung von MySQL SQL-Anweisungen

Wenn wir mit einer SQL-Anweisung konfrontiert wer...

Gründe, warum MySQL den Abfrage-Cache abgebrochen hat

MySQL hatte zuvor einen Abfragecache, Query Cache...

So verwenden Sie mysqldump für vollständige und zeitpunktbezogene Sicherungen

Mysqldump wird für logische Backups in MySQL verw...

React implementiert doppelten Schieberegler zum Querschieben

In diesem Artikel wird der spezifische Code für R...

Tutorial zur HTML-Tabellenauszeichnung (10): Zell-Padding-Attribut CELLPADDING

Unter Zellenabstand versteht man den Abstand zwis...

Zusammenfassung der MySQL InnoDB-Sperren

Inhaltsverzeichnis 1. Gemeinsam genutzte und exkl...