所有Docker容器状态?

igr*_*igr 9 docker

Docker状态列表在这里.但是,当我使用API​​列出docker容器时,状态以"自然"句子显示; 例如:

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

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

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

这是我正在谈论的api.

hel*_*ert 6

生成状态摘要的逻辑可以在Docker 源代码中找到,在文件container/states.gol。第 41 条。. 基本上,您将获得以下其中一项:

  • 上升 1 天(已暂停)
  • 重新启动 (123) 1 天前
  • 上升 1 天
  • 正在移除
  • 死的
  • 已创建
  • 1 天前退出 (123)
  • (空字符串)

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

"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"
}
Run Code Online (Sandbox Code Playgroud)

  • 我想知道的是该 JSON 输出中“状态”的有效值是什么。我只见过“跑步”,但还能是什么呢? (4认同)

cri*_*aig 5

来自他们的文档

创建、重新启动、运行、删除、暂停、退出或死亡之一

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