Swarm 任务状态

Docker 允许您创建服务,服务可以启动任务。服务是所需状态的描述,而任务则执行工作。工作按以下顺序调度到 swarm 节点上:

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

任务是执行一次直到完成的执行单元。当一个任务停止时,它不会再次执行,但可能会有一个新的任务来替代它。

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

任务会按以下顺序经历这些状态:

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

接下来去哪里

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