You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取Docker所有状态类型列表?含容器及API相关状态

获取Docker所有状态类型完整列表的途径

以下是几种可靠的获取Docker全量状态类型的方法:

1. 查阅Docker官方文档

Docker官方文档中明确定义了容器生命周期的核心状态(如Created、Up、Exited、Paused、Restarting、Dead),以及镜像拉取、推送、构建过程中的临时状态(如preparing、downloading、pushing、verifying checksum、waiting),这些状态的含义和出现场景都有详细说明。

2. 查看Docker核心源码

所有状态字符串都硬编码在Docker的核心代码中,可直接定位到对应文件查看:

  • 容器核心状态:在container/state.go文件中定义了容器生命周期的基础状态枚举
  • 镜像操作相关临时状态:分散在builder(构建)、registry(镜像仓库交互)等模块的代码中,比如拉取镜像时的downloading、校验时的verifying checksum

3. 通过Docker Engine API查询

通过Docker Engine的REST API可以获取细粒度的状态信息:

  • 容器详细状态:调用GET /containers/{container_id}/json接口,返回结果的State字段包含完整的容器状态数据,包括Status(展示态)、Running、Paused等布尔型状态标识
  • 操作过程状态:执行镜像构建、拉取等操作时,通过API的实时日志流(如POST /build的响应流)可以捕获到preparing、waiting这类临时状态

4. 监控Docker实时事件与命令输出

  • 使用docker events命令可以实时接收Docker的所有事件流,涵盖容器状态变更、镜像拉取/推送的全流程状态,能直接观察到所有出现的状态类型
  • 执行docker ps -a可列出所有容器的当前状态,结合docker logs、docker build等命令的输出,也能收集到各类临时状态

示例:查看容器详细状态

# 通过命令行查看容器完整状态
docker inspect <container_id> | jq '.[] | .State'

Python API中获取容器状态

import docker
client = docker.from_env()
container = client.containers.get("<container_id>")
# 获取完整状态字典
full_state = container.attrs['State']
# 获取展示态状态字符串
status = container.status

内容的提问来源于stack exchange,提问作者J'e

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 15:10:43