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

Zusammenfassung des CSS-Zählers und des Inhalts

Die Inhaltseigenschaft wurde bereits in CSS 2.1 e...

CSS zum Implementieren von QQ-Browserfunktionen

Code Wissenspunkte 1. Kombinieren Sie fullpage.js...

So verhindern Sie, dass Website-Inhalte in Suchmaschinen aufgenommen werden

Normalerweise besteht das Ziel beim Erstellen ein...

Beispiele für JavaScript-Operationselemente

Weitere Informationen zu Bedienelementen finden S...

Tutorial zu HTML-Formular-Tags (2):

Dieses Tutorial stellt die Anwendung verschiedene...

Analyse von MySQL-Parallelitätsproblemen und -Lösungen

Inhaltsverzeichnis 1. Hintergrund 2. Langsame Abf...

So führen Sie Befehle auf einem Remote-Linux-System über SSH aus

Manchmal müssen wir einige Befehle auf einem Remo...

So führen Sie PostgreSQL mit Docker aus

1. Installieren Sie Docker. Referenz-URL: Docker-...

Lassen Sie uns ausführlich über die gemeinsame MySQL-Abfrage sprechen

Inhaltsverzeichnis Union-Abfrage 1. Fragen Sie di...

MySQL extrahiert interne JSON-Felder und gibt sie als Zahlen aus.

Inhaltsverzeichnis Hintergrund Problemanalyse 1. ...

Installieren Sie das Linux-System automatisch basierend auf Cobbler

1. Komponenten installieren yum install epel-rpm-...