Swarm 任務狀態

Docker 允許您創建服務,這些服務可以啟動任務。服務是對期望狀態的描述,而任務則負責執行工作。工作會按照以下順序在 Swarm 節點上進行排程

  1. 使用 docker service create 創建服務。
  2. 該請求會發送至 Docker 管理節點(Manager node)。
  3. Docker 管理節點將服務排程到特定的節點上執行。
  4. 每個服務可以啟動多個任務。
  5. 每個任務都有一個生命週期,包含如 NEWPENDINGCOMPLETE 等狀態。

任務是執行單元,運行完成後即結束。當任務停止時,它不會再次執行,但可能會由一個新的任務取而代之。

任務會經歷一系列狀態直到完成或失敗。任務初始化時處於 NEW 狀態。任務會依序向前推進,其狀態不會後退。例如,任務絕不會從 COMPLETE 變為 RUNNING

任務會依下列順序經歷各個狀態

任務狀態描述
NEW任務已初始化。
PENDING已為任務分配資源。
ASSIGNEDDocker 已將任務分配給節點。
ACCEPTED任務已被工作節點(Worker node)接受。如果工作節點拒絕任務,狀態將變更為 REJECTED
READY工作節點準備好啟動該任務。
PREPARINGDocker 正在準備該任務。
STARTINGDocker 正在啟動該任務。
RUNNING任務正在執行中。
COMPLETE任務在沒有錯誤代碼的情況下退出。
FAILED任務因錯誤代碼而退出。
SHUTDOWNDocker 要求該任務關閉。
REJECTED工作節點拒絕了該任務。
ORPHANED該節點離線時間過長。
REMOVE該任務並非終止狀態,但相關的服務已被移除或縮減規模。

查看任務狀態

執行 docker service ps <服務名稱> 以取得任務狀態。CURRENT STATE 欄位顯示任務的狀態以及該狀態持續的時間。

$ docker service ps webserver
ID             NAME              IMAGE    NODE        DESIRED STATE  CURRENT STATE            ERROR                              PORTS
owsz0yp6z375   webserver.1       nginx    UbuntuVM    Running        Running 44 seconds ago
j91iahr8s74p    \_ webserver.1   nginx    UbuntuVM    Shutdown       Failed 50 seconds ago    "No such container: webserver.…"
7dyaszg13mw2    \_ webserver.1   nginx    UbuntuVM    Shutdown       Failed 5 hours ago       "No such container: webserver.…"

接下來怎麼做

© . This site is unofficial and not affiliated with Kubernetes or Docker Inc.