Meine Hypothese: die betroffenen Container haben einen Exit-Status-Code > 0, wenn WT den Container beendet.
Führ doch mal `docker stop` für einen der betroffenen Container durch und schau dir mit `docker ps -a` an welcher Exit-Status-Code (`Exited (x)`) in der Spalte STATUS steht. Ich gehe davon aus, dass bei allen Containern die zu der Fehlermeldung geführt haben, nicht 'Exited (0)` (=kein Fehler) steht.
Üblicherweise findet man im Container-Context die Codes 137 + 143. Hier findet man eine Erläuterung dazu:
https://komodor.com/learn/sigterm-signal-15-exit-code-143-linux-graceful-termination/
Sobald ein `docker stop` ausgeführt wird, wird SIGTERM an pid1 im Container geschickt. Wenn der Prozess innerhalb einer Grace-Period von 10 Sekunden nicht beendet wird, dann wird der Container hart mit SIGKILL beendet.
Wenn SIGTERM nicht zum Beenden des Hauptprozesses führt, kann es an falschem Image-Design liegen: ENTRYPOINT/CMD im Dockerfile nutzen nicht die Array-Syntax und/oder das Entrypoint-Skript startet die Hauptanwendung nicht mit `exec`, um PID1 an diesen Prozess zu übergeben (andernfalls erreicht das SIGTERM den Hauptprozess nie!).
Es kann aber auch sein, dass das Image Design korrekt ist, aber die Hauptanwendung einfach keinen SIGTERM-Handler implementiert hat, der das Signal sauber verarbeiten würde um den Prozess geordnet zu beenden. So ist es zum Beispiel mit meinem Language-Tool Image gewesen, weswegen ich seit 5.9-8 unter Verwendung von `tini` den Exist-Status-Code schlucke.
Ich hätte vielleicht besser schreiben sollen: "Wenn es nicht richtig läuft, findet man überlicherweise..."
Der Standard sollte natürlich 0 sein.