2016-06-30 3 views
27

私は1G RAMのホストで稼働しているドッカーコンテナを持っています(同じホストで動作する他のコンテナもあります)。このドッカーコンテナ内のアプリケーションは、いくつかの画像をデコードし、メモリを多く消費する可能性があります。ドッカーのコンテナが出る理由を知るには?

時々、このコンテナは終了します。私はそれがメモリ不足のためではないとはっきりしないとは思わない。根本的な原因を見つける方法が必要です。このコンテナの死のために何が起こったのか、とにかく分かっていますか?

+1

「docker logs 」でそのコンテナのログを確認できます。 – techtabu

+0

しかし、コンテナが終了した、私はそれ以上ログに記録できないと思いますか? –

+0

私のマシンで試しました。コンテナが終了してもログにアクセスできます。 –

答えて

46

その他は、アプリケーションの出力を表示するにはdocker logs $container_idと記載されています。これは常にチェックするのが私の最初のことです。

次は、例えば、状態の詳細を表示するdocker inspect $container_idを実行することができます:

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

重要な行を使用すると、コンテナメモリ制限を超えるとドッカーがあなたを殺す場合はtrueになります「OOMKilled」がありますアプリ。終了コードを参照して、アプリが終了する原因を特定するかどうかを確認することもできます。

+1

私のコンテナがなくなったので、ここで理解できません、どのように "検査"が機能するのですか?上記の説明から、アプリケーションが終了すると、コンテナもまた死ぬでしょう。あなたは同じイメージを再起動して検査することを意味しますか? –

+2

@LiBinコンテナは、死ぬと拭き取られず、単にstatus = stoppedまたはexitのような停止状態になります。 'docker ps -a'と自分で確認する –

+0

@SamuelTohありがとう。今は明らかです。 –

関連する問題