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.…"

下一步去哪里