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 <服務名稱>
以取得工作的狀態。「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.…"