Swarm 任务状态
目录
Docker 允许您创建服务,这些服务可以启动任务。服务是对期望状态的描述,而任务则执行实际工作。工作将按以下顺序在 Swarm 节点上调度:
- 使用
docker service create创建服务。 - 请求发送至 Docker 管理节点。
- Docker 管理节点负责将服务调度到特定的节点上运行。\n
- 每个服务都可以启动多个任务。
- 每个任务都有一个生命周期,状态包括
NEW、PENDING和COMPLETE。
任务是一次性执行至完成的执行单元。当任务停止时,它不会再次执行,但可能会有一个新任务取而代之。
任务会经历多个状态,直到完成或失败。任务在 NEW 状态初始化。任务向前推进经过多个状态,其状态不会倒退。例如,任务绝不会从 COMPLETE 变为 RUNNING。
任务按以下顺序经历各个状态:
| 任务状态 | 描述 |
|---|---|
NEW | 任务已初始化。 |
PENDING | 已为任务分配资源。 |
ASSIGNED | Docker 将任务分配给节点。 |
ACCEPTED | 任务已被工作节点接受。如果工作节点拒绝该任务,状态将变为 REJECTED。 |
READY | 工作节点已准备好开始任务 |
PREPARING | Docker 正在准备任务。 |
STARTING | Docker 正在启动任务。 |
RUNNING | 任务正在执行中。 |
COMPLETE | 该任务已正常退出,未返回错误代码。\n |
FAILED | 该任务以错误代码退出。 |
SHUTDOWN | Docker 请求任务关闭。 |
REJECTED | 工作节点拒绝了该任务。 |
ORPHANED | The node was down for too long. |
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.…"