Swarm 任务状态

Docker 允许您创建服务,这些服务可以启动任务。服务是对期望状态的描述,而任务则执行实际工作。工作将按以下顺序在 Swarm 节点上调度:

  1. 使用 docker service create 创建服务。
  2. 请求发送至 Docker 管理节点。
  3. Docker 管理节点负责将服务调度到特定的节点上运行。\n
  4. 每个服务都可以启动多个任务。
  5. 每个任务都有一个生命周期,状态包括 NEWPENDINGCOMPLETE

任务是一次性执行至完成的执行单元。当任务停止时,它不会再次执行,但可能会有一个新任务取而代之。

任务会经历多个状态,直到完成或失败。任务在 NEW 状态初始化。任务向前推进经过多个状态,其状态不会倒退。例如,任务绝不会从 COMPLETE 变为 RUNNING

任务按以下顺序经历各个状态:

任务状态描述
NEW任务已初始化。
PENDING已为任务分配资源。
ASSIGNEDDocker 将任务分配给节点。
ACCEPTED任务已被工作节点接受。如果工作节点拒绝该任务,状态将变为 REJECTED
READY工作节点已准备好开始任务
PREPARINGDocker 正在准备任务。
STARTINGDocker 正在启动任务。
RUNNING任务正在执行中。
COMPLETE该任务已正常退出,未返回错误代码。\n
FAILED该任务以错误代码退出。
SHUTDOWNDocker 请求任务关闭。
REJECTED工作节点拒绝了该任务。
ORPHANEDThe 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.…"

下一步该去哪里