Dockerコンテナ監視とログ管理の実装プロセス分析

Dockerコンテナ監視とログ管理の実装プロセス分析

Docker の導入規模が大きくなると、コンテナを監視する必要があります。一般的に、Docker には ps、top、stats などの監視サブコマンドがいくつか付属しています。また、人気の高いオープンソース監視ツール Prometheus もあります。

Docker独自の監視サブコマンド ps

docker psはコンテナをリストします。現在実行中のコンテナを表示するのに便利です。以下はコマンド構文とパラメータ構文です。

docker ps [オプション]

オプションの説明:

  • -a : 実行されていないコンテナも含め、すべてのコンテナを表示します。
  • -f: 条件に応じて表示されるコンテンツをフィルタリングします。
  • --format : 戻り値のテンプレートファイルを指定します。
  • -l : 最近作成されたコンテナを表示します。
  • -n : 最近作成された n 個のコンテナを一覧表示します。
  • --no-trunc : 出力を切り捨てません。
  • -q : サイレントモード、コンテナ番号のみを表示します。
  • -s : ファイルの合計サイズを表示します。

出力の詳細:

  • コンテナ ID: コンテナ ID。
  • IMAGE: 使用する画像。
  • COMMAND: コンテナを起動するときに実行するコマンド。
  • CREATED: コンテナが作成された時刻。
  • ステータス: コンテナのステータス。

7 つの状態があります:

  • 作成された
  • 再起動
  • ランニング
  • 削除する
  • 一時停止
  • 終了した
  • 死んだ

PORTS: コンテナのポート情報と使用される接続タイプ (tcp\udp)。

名前: 自動的に割り当てられたコンテナ名。

Docker の新しいバージョンでは、docker container ps と同じ機能と使用方法を持つ新しいコマンド docker container ls が提供されます。ただし、 ls の意味は ps よりも正確である可能性があるため、こちらが推奨されます。

トップ

コンテナ内で実行されているプロセスを知りたい場合は、次のように docker container top コマンドを実行します。

このコマンドの後に Linux オペレーティング システムの ps コマンドのパラメータ (-au など) を付けて、特定の情報を表示することもできます。docker container top [コンテナ名] -au の実行結果は次のようになります。

統計

Docker コンテナ統計は、各コンテナのさまざまなリソースの使用状況を表示するために使用されます。


デフォルトでは、各コンテナの CPU 使用率、メモリ、使用可能なスペースを示すリアルタイム リストが表示されます。

コンテナ起動時にメモリ制限を指定していない場合、stats コマンドはホストメモリの総量を表示しますが、これは各コンテナがこれだけのメモリを使用できることを意味するものではありません。また、docker container stats コマンドはコンテナのネットワークとディスク IO データも表示します。stats コマンドの後にコンテナ名を指定すると、特定のコンテナのデータを表示できます。

Docker ログ

Docker のログ機能はデフォルトで設定されています。

実行中のコンテナの場合、Docker はコンテナの標準出力デバイス (STDOUT) と標準エラーデバイス (STDERR) にログを送信します。STDOUT と STDERR は、実際にはコンテナのコンソール ターミナルです。

コンテナ ログを表示するには、次の 2 つの方法があります。

このコンテナに取り付けます。

ログを表示するには、docker logs コマンドを使用します。

attach メソッドは、次の理由により、実際にはあまり便利ではありません。

アタッチ後のログのみが表示され、それ以前のログは表示されません。

アタッチ状態を終了するのはさらに面倒であり (Ctrl+p の次に Ctrl+q キーの組み合わせ)、コンテナーを誤って強制終了してしまう可能性も高くなります (たとえば、Ctrl+C を押すなど)。

コンテナ ログを表示するには、docker logs コマンドを使用することをお勧めします。

以下のように表示されます。

docker logs はコンテナが起動されてからの完全なログを出力でき、-f パラメータは新しく生成されたログを引き続き出力できます。これは Linux の tail -f と同じです。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Golang が Docker コンテナのハートビート監視機能を実装
  • spring-boot と docker-java に基づいて Docker コンテナの動的な管理と監視を実装します [完全なソース コードのダウンロード付き]
  • Zabbix は Docker コンテナのステータスを監視します [推奨]
  • Dockerコンテナ可視化監視センターの構築の詳細説明
  • Grafana を使用して Docker コンテナの監視チャートを表示し、電子メールアラートルールを設定する (図)
  • Dockerコンテナのメモリ監視の原理と応用
  • Dockerコンテナを監視するPythonスクリプト

<<:  Vueは小さなカウントダウン機能を実装します

>>:  MySql データベースにリモートでログインするにはどうすればよいですか?

推薦する

CSS でハニカム/六角形アトラスを実装するためのサンプルコード

理由は分かりませんが、UIではハニカム効果(手を広げたような効果)のデザインが好まれます。 1. 六...

Apache での ab パフォーマンス テスト結果を分析する

私はパフォーマンス テストを行うために常に Loadrunner を使用してきました。 Loadru...

Vue 天気予報入門

この記事では、参考までに天気予報を実装するためのVueの具体的なコードを紹介します。具体的な内容は次...

Linux における mv コマンドの高度な使用例

序文mv コマンドは、move の略語で、ファイルを移動したり、ファイル名を変更したり (ファイルの...

W3C チュートリアル (13): W3C WSDL アクティビティ

Web サービスは、アプリケーション間の通信に関係します。 WSDL は、XML ベースの Web ...

Dockerコンテナは定期的にデータベースをバックアップし、指定されたメールボックスに送信します(設計アイデア)

目次1. 背景: 2. デザインのアイデア: 3. 起動スクリプトを書く4. イメージを構築する5....

MySQL最適化ソリューション: スロークエリログを有効にする

目次序文スロークエリログの設定テスト付録: ログ解析ツール mysqldumpslow要約する序文こ...

Msyql トランザクション分離について知っておくべきこと

トランザクションとは何ですか?トランザクションは、データベース管理システムの実行プロセスにおける論理...

MySQL実行計画を学ぶ

目次1. 実施計画の概要2. 実行計画の実践id:選択タイプ:テーブル:タイプ:可能なキー:鍵:キー...

nginx をシャットダウン/再起動/起動する方法

閉鎖サービス nginx 停止systemctl 停止 nginx起動するサービス nginx 開始...

js での遅延読み込みとプリロードの具体的な使用法

遅延読み込み(レイジー読み込み)とプリロードは、Web 最適化によく使用される手段です。 。 1. ...

MySQLで大きなテーブルをエレガントに削除する方法について簡単に説明します

目次1. 切り捨て操作1.1 MySQL truncate はどのような操作を実行しますか? 1.2...

MySQL バッチ挿入ループの詳細なサンプルコード

背景数日前、MySql でページングを行っていたときに、ページングに制限 0,10 を使用するとデー...

Vue.jsはシンプルな折りたたみパネルを実装します

この記事では、Vue.jsの具体的なコードを共有して、シンプルな折りたたみパネルを実装する例を紹介し...