Lösung zur automatischen Beendigung von Docker Run-Containern

Lösung zur automatischen Beendigung von Docker Run-Containern

Heute ist bei mir ein Problem aufgetreten, als ich Dockerfile zum Erstellen eines Images verwendet habe und der Container nach dem Ausführen des Images automatisch beendet wurde.

Befehl starten:

docker run -d -p 8080:8080 -v /usr/local/tomcat7.0/logs:/usr/local/tomcat7.0/logs --name tomcatweb tomcat:7.0

Verwenden Sie nach dem Ausführen Docker PS, um festzustellen, dass der Docker-Container beendet ist

Nach einer Suche nach Informationen stellte ich fest, dass dieses Problem nicht kompliziert ist. Der Grund ist, dass ein Vordergrundprozess vorhanden sein muss, wenn der Docker-Container im Hintergrund ausgeführt wird.

Lösung:

1. Starten Sie den laufenden Prozess im Vordergrund, beispielsweise: nginx nginx -g "daemon off;" tomcat ./catalina.sh run

2. Verwenden Sie tail, top und andere Programme, die im Vordergrund ausgeführt werden können. Tail wird insbesondere für die Ausgabe Ihrer Protokolldatei empfohlen.

Fügen Sie ENTRYPOINT /opt/tomcat7.0/bin/startup.sh && tail -F /opt/tomcat7.0/logs/catalina.out zur Docker-Datei hinzu.

Zusätzliches Wissen: Der von Docker Pull gezogene Tomcat hat keine Protokolle generiert, daher habe ich manuell eine Tocmat-Dockerfile-Datei geschrieben und getestet, ob Protokolle generiert wurden

1. Die Dockfile-Datei und ihre Erklärung sind wie folgt

VON openjdk:8-jre 
BEWAHRER
 
ENV JAVA_HOME /docker-java-home
Umgebung CATALINA_HOME /opt/tomcat 
ENV-PFAD $PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin:$CATALINA_HOME/scripts
 
#Zeitzone RUN echo "Asia/Shanghai" > /etc/zeitzone 
FÜHREN Sie mv /etc/localtime /etc/localtime_bak aus. 
RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
 
#KATER 
Umgebung Tomcat_Major 8
ENV TOMCAT_VERSION 8.5.35
 
Führen Sie wget http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.41/bin/apache-tomcat-8.5.41.tar.gz && \ aus.
 tar -zxvf apache-tomcat-8.5.41.tar.gz && \
 rm apache-tomcat*.tar.gz && \
 mv apache-tomcat* ${CATALINA_HOME} 
 
RUN chmod +x ${CATALINA_HOME}/bin/*sh 
RUN chmod 777 ${CATALINA_HOME}/logs/ 
RUN chmod 777 ${CATALINA_HOME}/webapps/
 
#Benutzernamen und Passwort auf „admin“ setzen 
HINZUFÜGEN tomcat-users.xml /opt/tomcat/conf/
 
#Fernzugriff ADD context.xml /opt/tomcat/webapps/manager/META-INF/
 
ENV LANG zh_CN.UTF-8
 
#Öffnen Sie Port EXPOSE 8080
 
# Tomcat starten 
ARBEITSVERZEICHNIS /opt/tomcat/bin
CMD ["catalina.sh","ausführen"]

Hinweis: Dieser Docker muss auf externe Dateien verweisen

Weitere Einzelheiten finden Sie auf GitHub.

2. Dockerfile-Kompilierungsbefehl

Docker-Build –f Dockerfile –t zyj/Tomcat.

3. Befehl ausführen

docker run -d -p 8080:8080 --name tomcat8
-v /opt/docker-tomcat/logs/:/opt/tomcat/logs/ -v /opt/docker-tomcat/webapps/:/opt/tomcat/webapps/ -v /opt/docker-tomcat/context.xml:/opt/tomcat/webapps/manager/META-INF/context.xml -v /opt/docker-tomcat/tomcat-users.xml:/opt/tomcat/conf/tomcat-users.xml --privileged=true zyj/tomcat

Die obige Lösung für das Problem, dass Docker Run-Container automatisch beendet werden, ist alles, was ich mit Ihnen teilen kann. Ich hoffe, sie kann Ihnen als Referenz dienen. Ich hoffe auch, dass Sie 123WORDPRESS.COM unterstützen werden.

Das könnte Sie auch interessieren:
  • docker run -v mountet Datenvolumes abnormal und der Containerstatus wird immer neu gestartet
  • Eine kurze Diskussion zum Problem des Docker-Run-Containers im erstellten Status
  • Was tun, wenn der von Docker Run gestartete Container hängt und Daten verliert?
  • Detaillierte Einführung in den Lebenszyklus von Docker Runc-Containern
  • Lösen Sie das Problem, dass der Container nach dem Docker-Lauf „Beendet (0)“ anzeigt.

<<:  Detaillierte Erklärung zweier zu beachtender Punkte bei vue3: Setup

>>:  Datenabfragevorgang im MySQL-JSON-Format

Artikel empfehlen

Vorschläge zur Optimierung der Webseiten-Kopfzeile

Logo-Optimierung: 1. Das Logobild sollte so klein...

Ein vollständiges Tutorial zur Verwendung der Axios-Kapselung in Vue

Vorwort Heutzutage wird in Projekten häufig die A...

So versuchen Sie, Ihrem CSS einen Sticky-Effekt hinzuzufügen

Vorne geschrieben Ich weiß nicht, wer als Erster ...

Ist ein Design, das den Designspezifikationen entspricht, ein gutes Design?

In den letzten Jahren meiner Karriere habe ich an...

Analyse der Unterschiede zwischen Mysql InnoDB und MyISAM

MySQL unterstützt viele Arten von Tabellen (d. h....

Docker-Installation Tomcat Dubbo-Admin-Instanz-Kenntnisse

1. Laden Sie das Tomcat-Image herunter Docker zie...

Detaillierte Erläuterung der häufig verwendeten Filter von Tomcat

Inhaltsverzeichnis 1. Domänenübergreifender Filte...

Einige Dinge, die beim Erstellen einer Webseite zu beachten sind

--Backup der Homepage 1.txt-Text 2. Scannen Sie da...

Der vollständige Leitfaden zum Rasterlayout in CSS

Grid ist ein zweidimensionales Rasterlayoutsystem...

Skriptbeispiel zum Starten und Stoppen von Spring-Boot-Projekten in Linux

Es gibt drei Möglichkeiten, ein Springboot-Projek...

CentOS 8.0.1905 installiert ZABBIX Version 4.4 (verifiziert)

Zabbix Server-Umgebungsplattform Version: ZABBIX ...

So verwenden Sie Mixins in Vue

Inhaltsverzeichnis Vorwort Anwendung Zusammenfass...