Docker 集群中的任务状态解析
在 Docker 集群中,服务描述所需的目标状态,而任务负责实际执行。请按以下步骤在集群节点上分派工作:
1. 通过 docker service create 命令创建服务。
2. 请求将被发送到 Docker 的管理节点(Manager)。
3. 管理节点对服务进行调度,确保其在指定节点上运行。
4. 每个服务可能启动多个任务。
5. 每个任务具有自己的生命周期,通常包含 NEW、PENDING 与 COMPLETE。
任务是一次性执行的工作单元,完成后不会再次执行,但随后可能会有新的任务来替代它。
任务会经历若干状态,直到完成或失败。它们从 NEW 状态开始初始化,状态向前推进且不会后退。例如,任务不会从 COMPLETE 回到 RUNNING。
任务按以下顺序遍历状态:
任务状态 描述
NEW — 任务已初始化。
PENDING — 任务的资源已分配。
ASSIGNED — Docker 已将任务分配到某个节点。
ACCEPTED — 该任务已被工作程序节点接受;若辅助节点拒绝任务,则状态将变为 REJECTED。
PREPARING — Docker 正在为任务做准备。
STARTING — Docker 正在启动任务。
RUNNING — 任务正在执行。
COMPLETE — 任务正常退出,无错误代码。
FAILED — 任务在退出时返回错误代码。
SHUTDOWN — 请求关闭任务。
REJECTED — 工作节点拒绝了该任务。
ORPHANED — 节点因超时而被视为孤儿。
REMOVE — 该任务尚未结束,但所关联的服务已删除或按比例缩减。
查看任务状态
你可以运行 docker service ps 以查看任务状态。CURRENT STATE 字段显示任务的当前状态及完成该任务的时间。
