web-dev-qa-db-ja.com

Dockerコンテナー内で実行されているすべてのプロセスをログに記録する方法は?

コマンドを使用してコンテナにログインした後-

docker exec -it <container_name>

コンテナ内で実行されているすべての処理済みを確認するにはどうすればよいですか? 「ps aux」は正しい方法ですか?より良い代替アプローチはありますか?

ありがとう

11
Always_Beginner

次のコマンドを使用すると、ターミナルにログインせずにコンテナ内で実行されているすべてのプロセスを表示できます。もちろん、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つのユーザーアプリケーション/プロセスを用意することをお勧めします。

8
Rao

専用コマンドtopを使用して、コンテナー内のオペレーティングシステムに関係なく、Dockerコンテナー内のプロセスを一覧表示できます。

docker top <container>
13

@Slawomirの答えからの拡張

そして、psオプションでは、docker top [--help] CONTAINER [ps OPTIONS]

docker top <container_id> -eo pid,cmd

2
sais