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

Detaillierte Erklärung der globalen Variablenimplementierung von Uniapp

Vorwort In diesem Artikel werden einige Implement...

Tutorial zur Installation von VMware Workstation 14 Pro unter Ubuntu 16.04

In diesem Artikel wird die spezifische Methode zu...

Heute bin ich auf ein sehr seltsames Problem gestoßen und habe es selbst gelöst

...Es ist so, heute wollte ich ein Popup-Fenster m...

Detaillierte Erklärung, wie Vue-Komponenten Werte untereinander übertragen

Inhaltsverzeichnis Überblick 1. Die übergeordnete...

So verwenden Sie webSocket zum Aktualisieren des Echtzeitwetters in Vue

Inhaltsverzeichnis Vorwort Informationen zu WebSo...

Eine kurze Diskussion über Tags in HTML

0. Was ist ein Tag? XML/HTML-CodeInhalt in die Zw...

Eine kurze Diskussion über den virtuellen Speicher von Linux

Inhaltsverzeichnis Herkunft Virtueller Speicher P...

Löschen von Dateien mit Leerzeichen in Linux (keine Verzeichnisse)

In unserer täglichen Arbeit kommen wir oft mit Da...

Zusammenfassung des Wissens zum MySQL-Protokoll

Inhaltsverzeichnis SQL-Ausführungsreihenfolge Bin...