docker topを使用して、コンテナで実行しているプロセスを確認する

LINEで送る
Pocket

はじめに

docker01_logo

前回の記事では、「dockerfileを使用してdockerコンテナイメージを作成する」手順について書いて行きましたが、今回はdocker topを使用して、コンテナで実行しているプロセスを確認する手順について書いて行きたいと思います。

 

環境

  • OS:CentOS  7.3.1611 (Core)
  • Kernel:3.10.0-514.21.2.el7.x86_64
  • docker-ce:17.03.1.ce-1.el7.centos.x86_64

 

docker topとは

コンテナで実行してるプロセスを確認するコマンドです。

 

使用方法は以下です。

docker top CONTAINER [ ps OPTION ]

 

手順

今回は、前回の記事で作成したapacheコンテナのイメージを使用し、このコンテナで起動しているプロセスを確認するところまでを実施したい思います。

コンテナのイメージ確認

# docker images | grep apache
test_apache          1.0                 264c8602c608        6 months ago        332 MB
#

前回の記事で作成したapacheコンテナのイメージとタグ名を確認します。

コンテナ起動

確認したイメージ名とタグ名で、コンテナを起動します。

# docker run -d -p 8080:80 test_apache:1.0
e55f7b497e6b2d6be860f32bafec5578f0cff517bad0ef16964e3094a22b7913
#

 

起動確認

# docker ps
CONTAINER ID IMAGE           COMMAND                CREATED        STATUS        PORTS                NAMES
e55f7b497e6b test_apache:1.0 "/bin/sh -c '/usr/..." 15 seconds ago Up 13 seconds 0.0.0.0:8080->80/tcp laughing_bhabha
#

 

プロセス確認

# docker top e55f7b497e6b
UID  PID  PPID C STIME TTY TIME    CMD
root 2825 2813 0 11:56 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
48   2842 2825 0 11:56 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
48   2843 2825 0 11:56 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
48   2844 2825 0 11:56 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
48   2845 2825 0 11:56 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
48   2846 2825 0 11:56 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
#

httpdプロセスの起動を確認出来ました。

OSコマンドの「ps」で「-ef」を指定した場合と同様の情報が確認できます。

 

「docker top」に「-ef」を指定しても、同様の表示となります。

# docker top e55f7b497e6b -ef
UID PID PPID C STIME TTY TIME      CMD
root 2825 2813 0 11:56 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
48   2842 2825 0 11:56 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
48   2843 2825 0 11:56 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
48   2844 2825 0 11:56 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
48   2845 2825 0 11:56 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
48   2846 2825 0 11:56 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
#

 

各プロセスごとのCPU・メモリ使用率が知りたい場合は、「aux」オプションを使用します。

# docker top e55f7b497e6b aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 2825 0.1 0.2 223980 4948 ? Ss 11:56 0:00 /usr/sbin/httpd -DFOREGROUND
48   2842 0.0 0.1 223980 2944 ? S  11:56 0:00 /usr/sbin/httpd -DFOREGROUND
48   2843 0.0 0.1 223980 2944 ? S  11:56 0:00 /usr/sbin/httpd -DFOREGROUND
48   2844 0.0 0.1 223980 2944 ? S  11:56 0:00 /usr/sbin/httpd -DFOREGROUND
48   2845 0.0 0.1 223980 2944 ? S  11:56 0:00 /usr/sbin/httpd -DFOREGROUND
48   2846 0.0 0.1 223980 2944 ? S  11:56 0:00 /usr/sbin/httpd -DFOREGROUND
#

 

まとめ

コンテナを複数起動してサーバの動作が重くなった時など、原因切り分けに使用出来そうですね。

 

LINEで送る
Pocket

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

four × 5 =