2015-12-26 52 views
5

Danh sách trạng thái Docker là here. Tuy nhiên, khi tôi liệt kê các vùng chứa docker bằng cách sử dụng API, các trạng thái được hiển thị trong các câu 'tự nhiên'; ví dụ .:Tất cả trạng thái vùng chứa Docker?

  • Exited (0) NN seconds ago
  • Up NN days
  • và vân vân ...

tôi không thể tìm thấy danh sách dứt khoát của tất cả các kết quả đầu ra chuỗi cho tất cả các trạng thái. Nói cách khác, tôi muốn phân tích các chuỗi trạng thái API của trình cắm.

Tất cả các đầu ra có thể có của API Docker cho trạng thái vùng chứa là gì?

Đây là số api Tôi đang nói đến.

Trả lời

2

Logic mà theo đó tóm tắt trạng thái được tạo có thể được tìm thấy trong số Docker source code, in the file container/states.go, l. 41ff.. Về cơ bản, bạn sẽ nhận được một trong các cách sau:

  • Up 1 ngày (tạm dừng)
  • Khởi động lại (123) 1 day ago
  • Up 1 ngày
  • diệt trong Progress
  • Chết
  • Created
  • thoát (123) 1 day ago
  • (trống string)

Để có được một sản lượng máy có thể đọc, tôi muốn đề nghị sử dụng /containers/:id/json endpoint, mà sẽ trả về một cấu trúc dữ liệu như sau:

"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

Những gì tôi muốn biết là các giá trị hợp lệ cho là gì '" Trạng thái "' trong đầu ra JSON đó. Tôi đã từng thấy "đang chạy", nhưng nó có thể là gì? – Aaron

0

Tôi đã không được sử dụng API từ xa, nhưng tôi khá chắc chắn những gì bạn thực sự muốn làm là có được ID của tất cả các container, sau đó nhận được thông tin State cho mỗi chai lọ bằng /containers/(id)/json:

... 
    "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" 
    }, 
... 

Bằng cách đó bạn nhận được cùng một dữ liệu ở dạng chuẩn hơn nhiều.

Các vấn đề liên quan