Lösen Sie das Problem, dass Docker-Container sofort nach dem Start beendet werden

Lösen Sie das Problem, dass Docker-Container sofort nach dem Start beendet werden

Kürzlich habe ich mir angesehen, wie Docker es Containern ermöglicht, bestimmte Prozesse direkt beim Start auszuführen. Später habe ich festgestellt, dass Dockerfile den Ausführungsbefehl für den Container angeben kann, wenn dieser gestartet wird.

CMD gibt an, aber jedes Dockerfile kann nur eine CMD-Anweisung haben. Wenn mehrere CMD-Anweisungen angegeben werden, wird nur die letzte ausgeführt.

Also habe ich mir eine Möglichkeit überlegt, ein Skript geschrieben, mehrere Prozesse im Skript gestartet und das Skript in Dockerfile ausgeführt.

Schließlich erwies sich diese Methode als durchführbar. Allerdings trat während des Experiments ein Problem auf. Der Container blieb sofort nach dem Start stehen.

Nach Einsichtnahme in die Informationen:

Ein Docker-Container kann jeweils nur einen Prozess verwalten. Wenn dieser Prozess beendet wird, wird auch der Container beendet. Dies bedeutet jedoch nicht, dass der Container nur einen Prozess ausführen kann (andere Prozesse können im Hintergrund ausgeführt werden). Damit der Container jedoch nicht beendet wird, muss ein Prozess im Vordergrund ausgeführt werden.

Lösung:

Der letzte Prozess im Skript muss im Vordergrundmodus ausgeführt werden, d. h. fügen Sie am Ende des Prozesses kein & hinzu (& bedeutet Ausführung im Hintergrund), da sonst der Container beendet wird.

Zusatzwissen: Probleme und Lösungen bei der Nutzung von gdbserver in einem Docker-Container

Ich habe ein Problem bei der Verwendung von gdbserver in einem Docker-Container

linux_ptrace_test_ret_to_nx: PTRACE_TRACEME kann nicht ausgeführt werden: Vorgang nicht zulässig

Der Grund dafür ist, dass Docker die PTRACE-Funktion standardmäßig deaktiviert und aktiviert werden muss, wenn der Container ausgeführt wird.

docker run -ti --cap-add=SYS_PTRACE ubuntu

Der obige Artikel zur Lösung des Problems, dass Docker-Container unmittelbar nach dem Start beendet werden, ist der gesamte Inhalt, den der Herausgeber mit Ihnen teilt. Ich hoffe, er kann Ihnen als Referenz dienen, und ich hoffe auch, dass Sie 123WORDPRESS.COM unterstützen.

Das könnte Sie auch interessieren:
  • Jedes Mal, wenn Docker einen Container startet, werden die IP und die Hosts mit den angegebenen Operationen
  • Detaillierte Erläuterung der Startreihenfolge des Docker-Containers mithilfe eines Shell-Skripts
  • Docker ändert die Konfigurationsinformationen eines nicht gestarteten Containers
  • Dockerfile-Implementierungscode beim Starten von zwei Prozessen in einem Docker-Container
  • Docker-Dateispeicherpfad, Befehlsvorgang zum Starten des Containers abrufen
  • Docker-Batch starten und alle Container schließen

<<:  Document Object Model (DOM) in JavaScript

>>:  Einführung in HTML DOM_PowerNode Java Academy

Artikel empfehlen

So fahren Sie nginx herunter/starten es neu

Schließung Dienst Nginx stoppen systemctl stoppt ...

Implementierung von Single-Div-Zeichentechniken in CSS

Sie können häufig Artikel über das Zeichnen mit C...

Lösen Sie das MySQL-Login-1045-Problem unter CentOS

Da die gesamte Anwendung unter CentOS bereitgeste...

Vorteile von MySQL-Abdeckungsindizes

Ein allgemeiner Vorschlag besteht darin, Indizes ...

Protokoll des Kompilierungs- und Installationsprozesses des Nginx-Quellcodes

Die Installation des RPM-Pakets ist relativ einfa...

Zusammenfassung der mobilen Anpassungslösung von webpack

Inhaltsverzeichnis rem vw An UI-Frameworks von Dr...

Mysql-Sortierung und Paginierung (Order by & Limit) und vorhandene Fallstricke

Sortierabfrage (Sortieren nach) Im E-Commerce: Wi...

Verwenden Sie CSS, um einen kreisförmigen Welleneffekt zu erzielen

Auf Mobilgeräten sehe ich häufig kreisförmige Wel...

JS Cross-Domain-XML – mit AS URLLoader

Kürzlich erhielt ich eine Anforderung für eine Fun...

Select unterstützt kein Doppelklick-DBClick-Ereignis

XML/HTML-CodeInhalt in die Zwischenablage kopiere...

So bereinigen Sie schnell Milliarden von Daten in einer MySQL-Datenbank

Heute habe ich eine Festplattenalarm-Ausnahme erh...