2016-06-30 53 views
27

Mam kontener dokowania działający na hoście 1G RAM (są też inne kontenery uruchomione na tym samym hoście). Aplikacja w tym oknie dokowanym dekoduje niektóre obrazy, co może pochłaniać dużo pamięci.Jak poznać przyczynę zakończenia kontenera dokera?

Od czasu do czasu ten kontener zostanie zamknięty. Wątpię, że wynika to z braku pamięci, ale niezbyt pewnej. Potrzebuję metody, aby znaleźć główną przyczynę. Czy jest więc tak, aby wiedzieć, co się stało ze śmiercią tego kontenera?

+1

Możesz sprawdzić logi dla tego kontenera za pomocą 'dzienników dokowania . – techtabu

+0

, ale kontener został zakończony, chyba nie mogę go już zarejestrować? –

+0

Właśnie wypróbowałem na mojej maszynie. Wciąż możesz uzyskać dostęp do dzienników nawet po wyjściu kontenera. –

Odpowiedz

46

Inni wspomnieli o docker logs $container_id, aby wyświetlić dane wyjściowe aplikacji. To zawsze jest moja pierwsza rzecz do sprawdzenia.

Następnie można uruchomić docker inspect $container_id aby zobaczyć szczegóły na temat stanu, np:

"State": { 
     "Status": "exited", 
     "Running": false, 
     "Paused": false, 
     "Restarting": false, 
     "OOMKilled": false, 
     "Dead": false, 
     "Pid": 0, 
     "ExitCode": 2, 
     "Error": "", 
     "StartedAt": "2016-06-28T21:26:53.477229071Z", 
     "FinishedAt": "2016-06-28T21:26:53.478066987Z" 
    }, 

Ważną linia jest „OOMKilled”, która będzie prawdziwa, jeśli przekraczają limity pamięci pojemnik i Docker zabija swoimi aplikacja. Możesz również wyszukać kod zakończenia, aby sprawdzić, czy identyfikuje przyczynę wyjścia z aplikacji.

+1

Nie rozumiem tutaj, ponieważ mój pojemnik zniknął, jak będzie działał "inspekcja"? Z powyższej dyskusji, gdy aplikacja zginie, kontener również umrze. Masz na myśli ponowne uruchomienie tego samego obrazu, a następnie inspekcję? –

+2

@LiBin pojemnik nie zetrze się, gdy umrze, po prostu przechodzi w stan zatrzymania, jak status = zatrzymany lub zamknięty. "docker ps -a" i przekonaj się sam: –

+0

@SamuelToh dzięki. teraz jest jasne. –