2016-10-28 4 views
5

は、容器の中にログインしましたか? "ps aux"は正しい方法ですか?より良い代替アプローチはありますか?Dockerコンテナ内で実行されているすべてのプロセスをログに記録する方法は?私はすべてが処理容器の内部で実行されているかどうかを確認するにはどうすればよい</p> <pre><code>docker exec -it <container_name> </code></pre> <p>- コマンドを使用することにより後

おかげ

+1

が最後にこれを置く:bashはその後、一度内部に、はいpsが動作します....また、広い出力にコンテナごとにアプリケーション・プロセスを持つに関して –

答えて

6

次のコマンドを使用して端末にログインすることなく、コンテナ内で実行されているすべてのプロセスを表示することが可能です。もちろん、それはちょうどps -eafを使って見ることができるのと同じように、docker execにそれを加えてください。

bash $ sudo docker exec -it test1 ps -eaf 
PID USER  TIME COMMAND 
    1 root  0:00 sh 
    7 root  0:00 sh 
    60 root  0:00 /bin/sh 
    67 root  0:00 /bin/sh 
    84 root  0:00 ps -eaf 

それが述べたようにあなたは、コンテナの中にすでにある場合は、それからだけで実行中のプロセスを確認するためにps -eafコマンドを使用します。

ところで、コンテナごとに1つのユーザーアプリケーション/プロセスを持つことをお勧めします。

+0

おかげで、表示するには、ps eafwwを試してみてください。ですから、私はちょうどJava jarファイルを呼び出すPythonアプリケーションを持っています。したがって、1つのPythonプロセスと1つのJavaプロセスが短時間実行されます。私は別の容器でそれらを実行するか、それは別の容器を実行している過剰なものでしょうか? –

+0

私が言及したのはお勧めの方法です。指定されたプロセスが終了すると、コンテナは自動的に停止します。ユーザーは長期間存在するプロセス/コンテナに対してのみ明示的にコンテナを停止する必要があります。だから、過剰殺しではない。可能であれば、プロセスを2つのコンテナで実行することを選択できます。ところで、この答えが役に立つのであれば、それを受け入れることを検討してください。 – Rao

7

専用コマンド先頭を使用すると、コンテナ内のオペレーティングシステムに関係なく、ドッカーコンテナ内のプロセスを一覧表示できます。あなたのコマンドに

docker top <container> 
関連する問題

 関連する問題