ctop を使って Docker コンテナを監視する方法 - TechRepublic

ctop を使って Docker コンテナを監視する方法 - TechRepublic

コンテナサービスとしてDockerをご利用の場合、コンテナの作成とデプロイがいかに簡単かご存知でしょう。おそらく既にコンテナを作成し、ネットワーク上で多数のコンテナを稼働させているでしょう。しかし、それらのコンテナのパフォーマンスはどの程度かご存知ですか?Linuxに詳しい方なら、コンテナ専用のtop/htopアプリがあればいいのにと思うかもしれません。

がある。

そうです、コンテナを監視する最適な方法の一つは、Githubにあるオープンソースツール「ctop」です。このアプリを使えば、コンテナの名前、ID、CPU、メモリ、ネットワークの送受信データなどの概要を素早く確認できます。ctopでは、表示内容をフィルタリングしたり、選択したコンテナの拡大表示もできます。機能はそれほど多くありませんが、必要な機能を十分に備えており、優れたパフォーマンスを発揮します。インストールも簡単で、使い方も非常に簡単です。ここではUbuntu 16.04プラットフォームでデモを行いますが、ctopはほぼすべてのLinuxディストリビューションにインストールできます。

インストール

ctop をインストールするには、アプリとしてインストールする方法とコンテナとしてインストールする方法の2つがあります。両方ご紹介します。まず、ctop をコンテナとしてインストールします。コンテナサーバーにログインし、以下のコマンドを実行してコンテナをデプロイします。

docker run -ti -v /var/run/docker.sock:/var/run/docker.sock quay.io/vektorlab/ctop:latest

上記のコマンドは必要なイメージをプルダウンし、コンテナをデプロイして、アプリを起動します。ctopを終了するには、[Ctl]+[x]を押します。この方法でctopを使う場合の問題点は、ctopを実行するたびに上記のコマンドを入力しなければならないことです。入力が多すぎます。もっと簡単にしましょう。

ctop をローカルアプリケーションとしてインストールできます。そのためには、GitHub から実行ファイルをプルダウンし、/usr/local/binに移動し、以下のコマンドで必要な権限を付与します。

wget https://github.com/bcicen/ctop/releases/download/v0.4.1/ctop-0.4.1-linux-amd64 -O ctop
sudo mv ctop /usr/local/bin/
sudo chmod +x /usr/local/bin/ctop

この時点で、 ctopコマンドを使用していつでも ctop を起動できます。

使用法

ctopの使い方は簡単です。ツールを開くと(図A)、現在アクティブなコンテナがすべてリスト表示されます。

図A

ご覧の通り、コンテナの1つ(wonderful_stallman)が1.37GBのメモリを使用しています。このコンテナはOnly Officeのインスタンスなので、より多くのリソースを使用するのは当然です。しかし、このコンテナが仮想マシンのシステムリソースをほぼ全て消費しているため、このコンテナをより強力な仮想マシンに移行することを検討する必要があるかもしれません。

ctopを使えば、コンテナを簡単にフィルタリングできます。例えば、サーバー上に多数のコンテナがあり、特定のデプロイメントのリソース使用状況を確認したいとします。ctopを開いた状態で、キーボードのFキーを押してフィルタを開きます(図B)。

図B

コンテナ名を入力すると、ctop はフィルターに一致する結果のみを表示します。これは、Docker サーバーが多数のコンテナをホストしている場合に非常に便利です。フィルターをクリアするには、もう一度 f と入力し、キーボードの Enter キーを押します。

リストからコンテナーを選択して Enter キーを押すと、読みやすいグラフにもう少し詳しい情報が表示されます (図 C )。

図C

展開表示を終了するには、q と入力します。ctop を終了するには、q と入力すると、bash プロンプトに戻ります。

十分な情報

Linuxでコンテナの詳細を表示するためにctopを使用する方法は、ほぼ以上です。このツールは詳細な情報を提供しませんが、コンテナのパフォーマンスを把握するのに十分な情報を提供します。ctopは、Dockerコンテナのトラブルシューティングにおける第一線として容易に活用できます。

Tagged: