docker statsコマンドの使い方(実例付)CE対応


 docker statsコマンドの使い方の紹介ページです。Docker CE ver17.12.1に対応しております。

 このコマンドは、コンテナのリソース使用状況のサマリー情報を、一定間隔おきに表示させることが出来ます。

 Linuxのtopコマンドをご存知の方には、そのコマンドに似たような機能といった方が解りやすいかもしれません。

 それでは以下で詳細に解説いたします。

 

docker statsコマンドのフォーマットとオプション

フォーマット

docker stats [オプション] [ 対象コンテナ名 | ID] [ 対象コンテナ名 | ID . . .]

 

主なオプション一覧

-a, --all
Dockerホスト内に存在する全てのコンテナの情報を出力する(オプション無しの場合は実行中のコンテナのみ対象)

--no-stream
表示内容のリアルタイム更新は無く、初回表示のみで終了する

■ 本記事の目次に戻る ■

docker statsコマンドの主な使い方

 

実行中の全コンテナのリソース使用状況を表示する

 以下のコマンドを実行します。

$ docker stats

 以下のように、画面上に、起動中のコンテナのCPU使用率やメモリ使用量などの情報が表示されます。Docker CEになってからコンテナ名が表示されるようになりました。

CONTAINER     ID NAME      CPU %  MEM USAGE / LIMIT   MEM %  NET I/O    BLOCK I/O      PIDS
96b351078f39  testvm-mem6  0.00%  1.547MiB / 1GiB     0.15%  648B / 0B  0B / 0B        1
9cbf61e5d2be  testvm-mem5  0.00%  1.516MiB / 1.875GiB 0.08%  648B / 0B  0B / 0B        1
f53571799f24  testvm-mem2  0.00%  1.535MiB / 1.875GiB 0.08%  648B / 0B  0B / 0B        1
78a0a0864a66  testvm-mem   0.00%  1.676MiB / 1.875GiB 0.09%  648B / 0B  9.6MB / 12.3kB 1
22755b68256f  testvm       0.00%  416KiB / 1.875GiB   0.02%  648B / 0B  7.15MB / 0B    1

 値がリアルタイムに更新しているように見えると思います。

 表示は、「Ctrl」+cを押すと止まります。

 止めた後、画面を上にスクロースしてみると解るのですが、docker statsを実行すると、dockerクライアントが端末の上下幅を自動取得して、表示がズレないように空行を出力して、コンテナのリソース情報を一定間隔で連続して出力しています。

 最初は、terminalの画面制御機能を使用してリアルタイム表示させているのかと思ったのですが、止めた後に確認してみてビックリでした。

 出力間隔は、ソースを確認したところ0.5秒固定のようでした。

 出力されている内容は、左から、コンテナID、コンテナ名、CPU使用率、メモリ使用率/メモリ上限値、ネットワークIO量、ブロックデバイスIO量、PIDSです。

 PIDSの出力内容がわからなかったので、色々調べてみたのですが、結局不明のままです。コンテナ内で起動可能なプロセスの上限値かと思ったのですが、調べきれませんでした。どなたかご存知の方がいらっしゃればコメント下さい!

 

 

コンテナを指定してリソース使用状況を出力する

 前の項で既に使用してしまいましたが、以下のようにdocker statsコマンドを実行する際に、コンテナIDもしくは名前を指定して実行した場合、指定したコンテナのみのリソース使用状況が出力されます。

 例えば、以下のとおりtestvmとtestvm2とtestvm3を指定して実行してみます。

$ docker stats testvm testvm2 testvm3

 実行結果は、以下のように出力されます。環境によって表示される値は異なります。

CONTAINER  CPU %  MEM USAGE / LIMIT     MEM %   NET I/O           BLOCK I/O           PIDS
testvm     0.00%  5.867 MiB / 4.68 GiB  0.12%   1.296 kB / 648 B  5.96 MB / 65.54 kB  0
testvm2    0.00%  5.871 MiB / 4.68 GiB  0.12%   788 B / 648 B     5.96 MB / 65.54 kB  0
testvm3    0.00%  5.863 MiB / 4.68 GiB  0.12%   210 B / 648 B     5.96 MB / 65.54 kB  0

 デフォルトでは、「CONTAINER」の部分はコンテナIDが出力されますが、コンテナ名を指定して実行した場合は、コンテナ名が出力されます。

 

最初の1回のみ出力して終了する

 デフォルトでは、実行を止めるまで0.5秒おきに出力され続けますが、「--no-stream」オプションを付けて実行した場合、出力は最初の1回だけになります。

$ docker stats --no-stream

 普段使用する際は、最初の1回だけで十分な気もします。

 

停止中のコンテナを含めた全コンテナのリソース使用状況を出力する

 デフォルトでは、実行中のコンテナのみが出力対象ですが、「-a」オプションを付けて実行した場合、停止中のコンテナも出力されます。

$ docker stats -a

 しかし、使用しているterminalの行数を超える数のコンテナを出力した場合、出力された文字がチカチカして非常に見にくい、といいますが役に立たないと思います。

 terminalの出力内容をファイルに吐き出すログ機能がある場合は、docker statsの内容をファイルに出力して、後から参照するという方法で使用するのでしたら、逆に便利かもしれません。

 

  以上でdocker statsコマンドの紹介を終わります。

 ご指摘、ご要望などが御座いましたらコメントいただけるとうれしいです。

 他のDockerコマンドの実例付紹介記事は、本サイト内の別記事「Dockerのコマンドの一覧(ver1.12対応版)(オリジナルな実例付き)」をご参照ください。

 ご訪問ありがとうございました!


コメントを残す

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

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください