簡體   English   中英

主管:進程崩潰時停止Docker容器

[英]Supervisor: Stop the Docker container when a process crashes

我想使用Supervisor在我的Docker容器中運行多個進程,如此處所述,在Docker文檔中

它有效,但是當我開始崩潰的其中一個進程時,doc沒有說明會發生什么。

在docker行為邏輯之后 - 當進程崩潰時 - 容器應該停止,並且可能稍后它應該由Docker根據重啟策略重新啟動。

但它不會發生,如果我開始退出的一個(或全部)應用程序 - 容器繼續工作。

當監視進程之一退出/崩潰時,我如何告訴Supervisor退出(並以這種方式停止容器,因為我在nodaemon=true模式下運行它)?

如果要在進程停止時退出容器,請不要使用supervisor(或任何其他進程管理器)。 直接在容器中運行該過程。

但更重要的是:不要在容器中運行多個關鍵應用程序。 Docker容器的黃金法則不是每個容器1個進程,而是每個容器1個問題。 這樣,當1個問題(應用程序)退出時,您的容器可以正常關閉。

即使在你引用的例子中,它們也沒有運行2個關鍵過程。 他們正在運行1個應用程序進程,然后在同一個容器中托管sshd以進行ssh訪問。 如果sshd停止,那可能不是什么大問題。 如果apache服務器停止......好吧,他們正在使用主管來處理它並自動重啟它。

得到你想要的東西,把你的問題分成多個容器,然后直接在容器中運行應用程序。

我發現這篇文章描述了它有時可以在一個容器中運行多個進程。

他描述了如何使用honcho創建您想要的行為:當其中一個進程失敗時停止整個容器。

我現在要嘗試這個,但我仍然有點懷疑,因為supervisord在docker世界中被廣泛使用,並且在他們自己的網站上也有描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM