Lösen Sie das Problem, dass der Container nach dem Docker-Lauf „Beendet (0)“ anzeigt.

Lösen Sie das Problem, dass der Container nach dem Docker-Lauf „Beendet (0)“ anzeigt.

Ich habe ein Dockerfile für OpenResty auf CentOS7 erstellt und gebaut.

docker run -d -p 801:80 openresty:1.19 /usr/local/openresty/nginx/sbin/nginx

Danach zeigt docker ps -a folgendes an

CONTAINER-ID BILD BEFEHL ERSTELLT STATUS PORTS NAMEN 9dee2d04b3b5 openresty:1.19 "/usr/local/openrest…" vor 24 Sekunden Beendet (0) vor 7 Sekunden gifted_bhabha 69846af3baa7 redis:latest "docker-entrypoint.s…" vor 24 Minuten Aktiv vor 24 Minuten 0.0.0.0:6379->6379/tcp rds

Der OpenResty-Status wird als „Beendet (0)“ angezeigt.

Grund:

Der Mechanismus von Docker besteht darin, den Container im Hintergrund auszuführen. Es muss mindestens ein Vordergrundprozess vorhanden sein. Wenn der vom Container ausgeführte Befehl kein angehaltener Befehl ist (z. B. Ausführen von top, tail), wird er automatisch beendet.

lösen:

Sie können den Befehl sh mit dem Konfigurationselement -g „daemon off;“ verwenden, um den Nginx-Dienst im Vordergrundmodus zu starten.

Daher wird der Startbefehl wie folgt angepasst:

docker run -d -p 801:80 openresty:1.19 /usr/local/openresty/nginx/sbin/nginx -g "Daemon aus;"

Führen Sie docker ps -a erneut aus, um den Effekt zu sehen

CONTAINER-ID BILD BEFEHL ERSTELLT STATUS PORTS NAMEN 0291303ca61b openresty:1.19 "/usr/local/openrest…" vor 29 Sekunden Aktiv vor 28 Sekunden strange_curie 69846af3baa7 redis:latest "docker-entrypoint.s…" vor 26 Minuten Aktiv vor 26 Minuten 0.0.0.0:6379->6379/tcp rds

Ergänzung: Docker befindet sich beim Start immer im Exit-Zustand. Lösung

Docker befindet sich beim Start immer im Exit-Zustand

Problemumgehung

Schritt 1. Docker rm Container-ID zum Löschen des Containers

Schritt 2: Docker-RMI-Image-ID zum Löschen des Images (das Image kann nur gelöscht werden, nachdem zuerst der Container gelöscht wurde)

Schritt 3: docker build -t tomcat:centos . Container neu erstellen

Schritt 4. docker run --privileged -it -d --name tomcat01 -p 1216:8080 tomcat:centos (Berechtigungen hinzufügen und)

Geben Sie ein Pseudoterminal an)

Fehlerursache 1. Fehlende Berechtigungen 2. Es läuft kein Terminal

Hinweis: –privileged fügt Berechtigungen hinzu

-t gibt ein Pseudoterminal an

Das Obige ist meine persönliche Erfahrung. Ich hoffe, es kann Ihnen als Referenz dienen. Ich hoffe auch, dass Sie 123WORDPRESS.COM unterstützen werden. Sollten dennoch Fehler oder unvollständige Überlegungen vorliegen, freue ich mich über eine Korrektur.

Das könnte Sie auch interessieren:
  • Ein zeitaufwändiger Fehlerbehebungsprozess für einen Docker-Fehler
  • Docker kann keine Verbindung zum Docker-Daemon herstellen. Läuft der Docker-Daemon auf diesem Host? Fehlerlösung
  • Docker-Daemon kann nicht gestartet werden: stimmt nicht mit der gespeicherten UUID-Fehlerlösung überein
  • Lösung für mehrere Docker-Container, die nicht die gleiche Portnummer haben
  • Schritte für den Exit-Fehlercode des Docker-Containers

<<:  Beispielcode für kreisförmigen Hover-Effekt mit CSS-Übergängen

>>:  Implementierung von MySQL mit dem Befehl mysqlbinlog zum Wiederherstellen versehentlich gelöschter Daten

Artikel empfehlen

Webdesign-Zusammenfassung

<br />Von der Geburt meiner ersten persönlic...

Eine kurze Diskussion über MySql-Ansichten, Trigger und gespeicherte Prozeduren

Sicht Was ist eine Ansicht? Welche Rolle spielt e...

So implementieren Sie verschiebbare Komponenten in Vue

In diesem Artikel erfahren Sie, wie Sie ziehbare ...

js native Wasserfall-Flow-Plugin-Produktion

In diesem Artikel wird der spezifische Code des n...

HTML-Tutorial: Titelattribut und Alt-Attribut

XHTML ist die Grundlage des CSS-Layouts. jb51.net...

So aktivieren Sie die JMX-Überwachung über Tomcat

Erstellen Sie eine Simulationsumgebung: Betriebss...

Grafische Schritte zur Zabbix-Überwachung des VMware Exsi-Hosts

1. Rufen Sie das Virtualisierungscenter auf, meld...