一千萬個為什麽

搜索

Docker Swarm循環



我已經編寫了自己的簡單碼頭工具圖片。它工作正常。

然後我創建了我的docker swarm,只有兩個節點,一個主服務器和一個從服務器,並使用以下命令啟動服務:

docker service create --mode global --name benchmark briomkez/ethereum-test

它循環,因為它無法創建服務(默認命令是一個簡單的 ls )。

為什麽會這樣?這是預期的嗎?

如果我使用不同的命令運行相同的服務,例如:

docker service create --mode global --name benchmark briomkez/ethereum-test geth

它就像一個魅力。這種行為是否可以預期,循環的動機是什麽?

轉載註明原文: Docker Swarm循環

一共有 1 個回答:

Docker容器是隔離的應用程序。當它啟動的應用程序退出時,容器也會退出。因此,當您的命令是 ls 時,它將運行然後幾乎立即退出,停止容器。

Swarm模式的目標是維護容器的目標狀態。默認情況下,它將保持服務運行的單個副本(容器的實例)。如果當前狀態與目標狀態不匹配,則將采取措施糾正問題。因此,對於沒有正在運行的實例且目標副本計數為1的容器,它將不斷啟動。

所以是的,這是給定輸入的預期行為。您應該使用長時間運行的守護進程,而不是 ls