Heim Betrieb und Instandhaltung Docker Warum gelingt es Docker Kill manchmal nicht, laufende Container zu töten?

Warum gelingt es Docker Kill manchmal nicht, laufende Container zu töten?

Mar 31, 2020 pm 02:18 PM

Warum gelingt es Docker Kill manchmal nicht, laufende Container zu töten?

Docker Kill-Hauptprozess

1 Die Docker-Engine verwendet SIGKILL, um den Container nach einer gewissen Zeit an den Hauptprozess zu senden Von Containerd wird eine Exit-Nachricht empfangen. Dann ist der Container-Kill erfolgreich.

2. Wenn die Wartezeit im vorherigen Schritt abläuft, überspringt die Docker-Engine Containerd und sendet das SIGKILL-Signal über den Kill-Systemaufruf an den Container-Hauptprozess. Wenn der Kill-Systemaufruf zurückgibt, dass der Hauptprozess zu diesem Zeitpunkt nicht existiert, ist Docker Kill erfolgreich. Andernfalls bleibt der Motor tot, bis Containerd den Motor passiert und der Container austritt.

Wenn ein Problem auftritt, wird festgestellt, dass sich eine große Anzahl von Stressprozessen (eigentlich Containerprozesse) auf dem Host-Computer im D-Zustand befinden, und die Systemreaktion verlangsamt sich. Das Problem kann wie folgt erklärt werden:

1. Nachdem Docker Kill das SIGKill-Signal indirekt über Containerd an den Container-Hauptprozess sendet, wird aufgrund der langsamen Systemreaktion der interne Unterprozess (Stress) Wenn sich der Container im D-Zustand befindet, hat Containerd während des Timeout-Zeitraums den Containerausgang nicht gemeldet. Docker kill hat das Stadium des direkten Sendens von Sigkill erreicht

2. Vor diesem Stadium wurde der Hauptprozess im Container beendet, sodass der Systemaufruf kill zum Senden von SIGKILL bald zurückgibt Prozess existiert nicht. Die Engine geht davon aus, dass sie den Container getötet hat, und Docker kill kehrt erfolgreich zurück.

3. Nach einer bestimmten Zeit werden die Container-Unterprozesse aus dem D-Zustand wiederhergestellt. Containerd meldet den Container-Exit und die Engine bereinigt die Ressourcen ps sieht, dass sich der Container im Exit-Status befindet.

Der Haupt-/Unterprozess des Containers befindet sich im D-Zustand

Der Prozess-D-Zustand bedeutet, dass sich der Prozess in einem ununterbrochenen Ruhezustand befindet und normalerweise auf E/A-Ressourcen wartet. Wenn es ein Problem mit der System-E/A gibt, befindet sich natürlich manchmal eine große Anzahl von Prozessen im D-Zustand. In diesem Zustand kann das Signal den Prozess nicht aufwecken; es kann nur darauf warten, dass der Prozess aus dem D-Zustand zurückkehrt. Und wenn sich im herkömmlichen Kernel ein Prozess im D-Zustand befunden hat, gibt es theoretisch keine Möglichkeit oder Möglichkeit, ihn von D wiederherzustellen, außer das System neu zu starten.

Weitere verwandte Tutorials finden Sie in der Spalte

Docker-Tutorial

auf der chinesischen PHP-Website.

Das obige ist der detaillierte Inhalt vonWarum gelingt es Docker Kill manchmal nicht, laufende Container zu töten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wie bereitete ich Anwendungen für einen Docker -Schwarm -Cluster bereit? Wie bereitete ich Anwendungen für einen Docker -Schwarm -Cluster bereit? Mar 17, 2025 pm 04:20 PM

In den Artikelsdetails werden Anwendungen zum Docker -Schwarm bereitgestellt und die Vorbereitung, Bereitstellungsschritte und Sicherheitsmaßnahmen während des Prozesses abdeckt.

Was sind Kubernetes Pods, Bereitstellungen und Dienste? Was sind Kubernetes Pods, Bereitstellungen und Dienste? Mar 17, 2025 pm 04:25 PM

Der Artikel erläutert Kubernetes 'Pods, Bereitstellungen und Dienste und beschreibt ihre Rollen bei der Verwaltung von Containeranwendungen. Es wird erläutert, wie diese Komponenten die Skalierbarkeit, Stabilität und Kommunikation in Anwendungen verbessern (159 Zeichen).

Wie skalieren ich Anwendungen in Kubernetes? Wie skalieren ich Anwendungen in Kubernetes? Mar 17, 2025 pm 04:28 PM

In dem Artikel werden Skalierungsanwendungen in Kubernetes mit manueller Skalierung, HPA, VPA und Cluster -Autoscaler erörtert und bietet Best Practices und Tools zur Überwachung und Automatisierung der Skalierung.

Wie implementieren Sie Ratenlimit- und Ressourcenquoten in Docker -Containern? Wie implementieren Sie Ratenlimit- und Ressourcenquoten in Docker -Containern? Mar 12, 2025 pm 06:07 PM

In diesem Artikel werden in Docker die Quoten und die Ressourcenquoten implementiert. Es deckt CPU-, Gedächtnis- und E/A -Grenzwerte mithilfe von CGroups ab und betont die Best Practices zur Verhinderung der Erschöpfung der Ressourcen. Einschränkung der Netzwerkrate, die externe Tools erfordern, wie

Wie implementiere ich Rolling -Updates in Docker Swarm? Wie implementiere ich Rolling -Updates in Docker Swarm? Mar 17, 2025 pm 04:23 PM

In dem Artikel werden die Implementierung von Rolling -Updates in Docker Swarm zur Aktualisierung von Diensten ohne Ausfallzeiten erläutert. Es deckt Aktualisierungsdienste, die Festlegung von Aktualisierungsparametern, die Überwachung des Fortschritts und die Gewährleistung der reibungslosen Updates ab.

Wie verwalte ich Dienste in Docker Swarm? Wie verwalte ich Dienste in Docker Swarm? Mar 17, 2025 pm 04:22 PM

In Artikel werden die Verwaltungsdienste in Docker Swarm erörtert, wobei der Schwerpunkt auf Erstellung, Skalierung, Überwachung und Aktualisierung ohne Ausfallzeiten liegt.

Wie verwalte ich Bereitstellungen in Kubernetes? Wie verwalte ich Bereitstellungen in Kubernetes? Mar 17, 2025 pm 04:27 PM

In dem Artikel wird das Management von Kubernetes -Bereitstellungen erläutert, wobei der Schwerpunkt auf Erstellung, Aktualisierungen, Skalierung, Überwachung und Automatisierung mithilfe verschiedener Tools und Best Practices liegt.

Was sind die besten Möglichkeiten, Docker für Anwendungen mit niedriger Latenz zu optimieren? Was sind die besten Möglichkeiten, Docker für Anwendungen mit niedriger Latenz zu optimieren? Mar 14, 2025 pm 02:00 PM

In dem Artikel werden Strategien zur Optimierung von Docker für Anwendungen mit niedriger Latenz erörtert, die sich auf die Minimierung der Bildgröße, die Verwendung von leichten Basisbildern und die Anpassung der Ressourcenzuweisung und der Netzwerkeinstellungen konzentrieren.

See all articles