2015-12-26 15 views
5

Lista stanów Docker to here. Jednak, gdy wyświetlam kontenery dokerów za pomocą interfejsu API, statusy są wyświetlane w "naturalnych" zdaniach; np .:Wszystkie stany kontenerów Docker?

  • Exited (0) NN seconds ago
  • Up NN days
  • i tak dalej ...

nie mogłem znaleźć ostateczną listę wszystkich wyjść ciąg dla wszystkich stanów. Innymi słowy, chcę przeanalizować ciągi statusu interfejsu dokera API.

Jakie są wszystkie możliwe wyjścia interfejsu Docker API dla stanów kontenera?

Tutaj jest api Im mówi.

Odpowiedz

2

Logikę, za pomocą której generowane jest podsumowanie stanu, można znaleźć w Docker source code, in the file container/states.go, l. 41ff.. Zasadniczo, otrzymasz jedną z następujących czynności:

  • Up 1 dzień (pauzy)
  • Ponowne uruchomienie (123) 1 dzień temu
  • Up 1 dzień
  • Removal in Progress
  • Martwe
  • Utworzono
  • Wyprowadzanie (123) 1 dzień temu
  • (pusty ciąg znaków)

W celu uzyskania wyjścia do odczytu maszynowego, sugeruję pomocą /containers/:id/json endpoint, która będzie zwracać strukturę danych jak poniżej:

"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

Co chcę wiedzieć, jakie są prawidłowe wartości dla '" Status "' w tym wyjściu JSON. Widziałem tylko "działa", ale czym innym to może być? – Aaron

0

ja nie używałem pilota API, ale jestem pewien, co rzeczywiście chcesz zrobić, to uzyskać identyfikator wszystkich pojemnikach, a następnie uzyskać informacje State dla każdego pojemnika za pomocą /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" 
    }, 
... 

W ten sposób otrzymasz te same dane w znacznie bardziej standardowej formie.

Powiązane problemy