2015-12-26 8 views
5

Dockerステータスのリストはhereです。ただし、APIを使用してドッキング・コンテナをリストすると、ステータスは「自然な」文で表示されます。例えば:すべてのDockerコンテナのステータスは?

  • Exited (0) NN seconds ago
  • Up NN days
  • のように...

私はすべてのステータスのためのすべての文字列出力の決定的なリストを見つけることができませんでした。言い換えれば、私はドッカーのAPIステータス文字列を解析したいと思います。

Docker APIのコンテナステータスにはどのような出力がありますか?

ここではapi Imについて話しています。

答えて

2

ステータスサマリーが生成されるロジックは、Docker source code, in the file container/states.go, l. 41ff.にあります。デッド 1日まで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

私が知りたいことのために有効な値がどのようなものさJSON出力では '' Status "'となります。私は ''走っている ''だけを見たことがありますが、他に何ができますか? – Aaron

0

は、私は、リモートAPIを使用していませんでしたが、私はあなたが実際にすべてのコンテナのIDを取得されて何をしたいのかかなり確信して、その後、/containers/(id)/jsonを使用して、各コンテナのState情報を取得する:

... 
    "State": { 
     "Error": "", 
     "ExitCode": 9, 
     "FinishedAt": "2015-01-06T15:47:32.080254511Z", 
     "OOMKilled": false, 
     "Paused": false, 
     "Pid": 0, 
     "Restarting": false, 
     "Running": true, 
     "StartedAt": "2015-01-06T15:47:32.072697474Z", 
     "Status": "running" 
    }, 
... 

これにより、より標準的な形式で同じデータを得ることができます。

関連する問題