Swarm 任務狀態
目錄
Docker 允許您建立服務,服務可以啟動任務。服務是所需狀態的描述,而任務則執行工作。工作按以下順序排程到 swarm 節點上:
- 使用
docker service create
建立一個服務。 - 請求傳送到 Docker 管理器節點。
- Docker 管理器節點排程服務在特定節點上執行。
- 每個服務可以啟動多個任務。
- 每個任務都有一個生命週期,包含
NEW
、PENDING
和COMPLETE
等狀態。
任務是執行一次直到完成的執行單元。當一個任務停止時,它不會再次執行,但可能會有一個新的任務來替代它。
任務會經歷多個狀態,直到完成或失敗。任務在 NEW
狀態下初始化。任務會向前推進經歷多個狀態,其狀態不會倒退。例如,一個任務永遠不會從 COMPLETE
變回 RUNNING
。
任務會按以下順序經歷這些狀態:
任務狀態 | 描述 |
---|---|
NEW | 任務已初始化。 |
PENDING | 任務的資源已分配。 |
ASSIGNED | Docker 已將任務分配給節點。 |
ACCEPTED | 任務已被工作節點接受。如果工作節點拒絕該任務,狀態將變為 REJECTED 。 |
READY | 工作節點已準備好啟動任務。 |
PREPARING | Docker 正在準備任務。 |
STARTING | Docker 正在啟動任務。 |
RUNNING | 任務正在執行中。 |
COMPLETE | 任務已退出,沒有錯誤程式碼。 |
FAILED | 任務因錯誤程式碼而退出。 |
SHUTDOWN | Docker 請求任務關閉。 |
REJECTED | 工作節點拒絕了該任務。 |
ORPHANED | 節點宕機時間過長。 |
REMOVE | 任務不是最終狀態,但關聯的服務已被移除或縮減。 |
檢視任務狀態
執行 docker service ps <service-name>
來獲取任務的狀態。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.…"