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