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

Bootstrap 3.0 Studiennotizen Grid-System-Fall

Vorwort Im vorherigen Artikel haben wir hauptsäch...

Implementierung des Vue 3.x-Projekts basierend auf Vite2.x

Erstellen eines Vue 3.x-Projekts npm init @vitejs...

Einführung in berechnete Eigenschaften in Vue

Inhaltsverzeichnis 1. Was ist eine berechnete Eig...

React Diff-Algorithmus-Quellcodeanalyse

Inhaltsverzeichnis Einzelner Knoten Diff Einzelel...

Eine kurze Analyse der MySQL-Sicherung und -Wiederherstellung

Inhaltsverzeichnis 1. Einleitung 2. Einfache Defi...

Tutorial und Praxis zu den virtuellen Speichereinstellungen unter Linux

Was ist virtueller Speicher? Zunächst werde ich e...

Lösungen für das Problem der Tabellenschachtelung und Rahmenzusammenführung

【Frage】 Wenn die äußere und die innere Tabelle ve...

MySQL 5.7 MySQL-Befehlszeilenclient - Befehlsdetails

MySQL 5.7 MySQL-Befehlszeilenclient mit Befehlen ...

jQuery Canvas generiert ein Poster mit einem QR-Code

In diesem Artikel wird der spezifische Code zur V...

Detaillierte Erklärung der Destrukturierungszuweisung in JavaScript

Inhaltsverzeichnis Konzept Array-Destrukturierung...

Beispiel für Javascript-Bubblesort

Inhaltsverzeichnis 1. Was ist Bubble Sort 2. Gebe...