LoginSignup
26
27

More than 3 years have passed since last update.

Dockerリソース使用状況の確認方法

Last updated at Posted at 2019-06-09

本投稿では、ホストOS上で現在稼働しているコンテナのリソース使用状況の確認方法およびコンテナで実行したコマンドのログを確認する方法を記載します。

1. テスト用コンテナをバックグラウンドで起動

まず、リソース確認用にテスト用コンテナを作成し、バックグラウンドでコンテナを起動します。

コンテナは、コンテナ作成時に -d オプションを付与することでバックグラウンドで実行することができます。

bash
$ docker container run \
> -d \  # バックグラウンドで実行
> --name test0001 \
> -h host0001 \
> -it \
> centos:7.5.1804 /bin/bash
fb6f53e1d4f599f26947bd39c40b20d48a22597ba3689c63df9598981d31fa12
$ docker container ls
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
fb6f53e1d4f5        centos:7.5.1804     "/bin/bash"         18 seconds ago      Up 17 seconds                           test0001

2. リソース使用状況を確認

次に、コンテナのリソース使用状況を確認します。リソースの使用状況の確認には、 docker container stats コマンドを実行することで確認することができます。

また、実行時に以下のコマンドオプションの指定や --format オプションで出力する項目をカスタマイズすることができます。

docker container stats コマンドのオプション

オプション 説明
-a 停止しているコマンドも含めて全てのコンテナのリソース使用状況を表示
--no-stream 使用状況を一度だけ表示し、コマンドプロンプトに戻るオプション
--no-trunc 完全なコンテナIDを表示
--format リソース使用状況の表示する項目を指定して表示

--format オプションで指定可能な項目

パラメータ 説明
.Container コンテナ名またはコンテナID
.Name コンテナ名
.ID コンテナID
.CPUPerc CPU利用率
.MemUsage メモリ使用量
,NetIO ネットワークIO
.BlockIO ディスクIO
.MemPerc メモリパーセンテージ(Windowsは使用不可)
.PIDs PID番号(Windowsは使用不可)

docker container stats コマンドの実行例

bash
$ docker container stats \
> --no-stream \
> --format "table {{.Name}}\t{{.ID}}\t{{.CPUPerc}}\t{{.MemUsage}}\t{{.PIDs}}"  # 表示する項目を指定
NAME                CONTAINER ID        CPU %               MEM USAGE / LIMIT   PIDS
test0001            fb6f53e1d4f5        0.00%               804KiB / 1.952GiB   1

3. コンテナで実行したコマンドのログ確認方法

最後に、テスト用コンテナで実行したコマンドのログを確認する方法を記載します。

ホストOS上で docker container logs コマンドを実行することでコンテナ内でのコマンド実行ログを確認することができます。

ホストOS上でrsyslogなどを活用することで、リアルタイムでのコンテナのログ出力など拡張することも可能です。

テスト用コンテナでコマンドを実行

bash
$ docker container attach test0001
[root@host0001 /]# ls
bin  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
[root@host0001 /]# hostname
host0001
[root@host0001 /]# read escape sequence

ホストOSで時刻付きでテスト用コンテナで実行したコマンドログを確認

bash
$ docker container logs -t test0001  # -t オプションを付与して時刻付きで表示
[root@host0001 /]# ls
2019-06-09T03:10:06.464865400Z bin  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
2019-06-09T03:10:09.631366100Z [root@host0001 /]# hostname
2019-06-09T03:10:09.636110800Z host0001

参考文献

  1. 古賀政純, "Docker実践ガイド 第2版", pp.126-130 (2019).
  2. The rocket-fast Syslog Server - rsyslog, https://www.rsyslog.com/, Online; accessed 9-June-2019.
26
27
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
26
27