所有Docker容器状态?

时间:2015-12-26 14:23:04

标签: docker

Docker状态列表为here。但是,当我使用API​​列出docker容器时,状态以“自然”句子显示; e.g:

  • Exited (0) NN seconds ago
  • Up NN days
  • 等......

我找不到所有状态的所有字符串输出的确定列表。换句话说,我想解析docker API状态字符串。

Docker API的容器状态的所有可能输出是什么?

这是我正在谈论的api

3 个答案:

答案 0 :(得分:3)

可以在Docker source code, in the file container/states.go, l. 41ff.中找到生成状态摘要的逻辑。基本上,您将获得以下其中一项:

  • 上一天(暂停)
  • 1天前重启(123)
  • 最多1天
  • 正在移除
  • 创建
  • 退出(123)1天前
  • (空字符串)

为了获得机器可读的输出,我建议使用/containers/:id/json endpoint,它将返回如下数据结构:

"State": {
    "Dead": false, 
    "Error": "", 
    "ExitCode": 0, 
    "FinishedAt": "0001-01-01T00:00:00Z", 
    "OOMKilled": false, 
    "Paused": false, 
    "Pid": 2593, 
    "Restarting": false, 
    "Running": true, 
    "StartedAt": "2015-12-26T19:22:38.616937722Z", 
    "Status": "running"
}

答案 1 :(得分:1)

我没有使用远程API,但我非常确定您真正想要做的是获取所有容器的ID,然后使用{获取每个容器的State信息{1}}:

/containers/(id)/json

通过这种方式,您可以以更标准的形式获得相同的数据。

答案 2 :(得分:0)

从他们的docs

  

已创建,重新启动,运行,删除,暂停,退出或死机之一

根据我的经验,在启动容器时,它是created,然后是running,然后当它以零零退出代码退出时,它是exited