ホームページ > 運用・保守 > Linuxの運用と保守 > Linux での Docker: コンテナーのテストと監視を自動化するには?

Linux での Docker: コンテナーのテストと監視を自動化するには?

WBOY
リリース: 2023-07-30 19:34:51
オリジナル
1000 人が閲覧しました

Linux 上の Docker: コンテナーの自動テストと監視を実行するにはどうすればよいですか?

コンテナ テクノロジーの急速な発展により、Docker は最も人気のあるコンテナ化プラットフォームの 1 つになりました。アプリケーションのデプロイと管理に Docker を使用するプロセスでは、コンテナの自動テストと監視が特に重要です。この記事では、Linux で Docker を使用してコンテナーのテストと監視を自動化する方法を紹介し、対応するコード例を示します。

1. Docker 自動テスト

  1. Dockerfile の作成
    まず、テストするアプリケーションの Dockerfile を作成する必要があります。 Dockerfile は、Docker イメージを構築するための一連の手順が含まれるテキスト ファイルです。以下は簡単な Dockerfile の例です:
FROM python:3.8-alpine

WORKDIR /app

COPY requirements.txt ./ 
RUN pip install --no-cache-dir -r requirements.txt

COPY . .

CMD [ "python", "./app.py" ]
ログイン後にコピー

上記の Dockerfile は Python ベースのアプリケーション用に作成され、最初に python:3.8-alpine イメージに基づいて新しいイメージを構築します。 。次に、作業ディレクトリを /app に設定し、アプリケーションに必要な依存関係ファイル requirements.txt をコンテナーにコピーし、依存関係をインストールします。次に、現在のディレクトリ内のすべてのファイルをコンテナにコピーし、CMD ディレクティブを通じてコン​​テナの起動時に実行するコマンドを指定します。

  1. コンテナの構築と実行
    Dockerfile の作成が完了したら、次に示すように、docker build コマンドを使用して Docker イメージを構築できます。 #
    $ docker build -t myapp:latest .
    ログイン後にコピー
  2. 上記のコマンドは、現在のディレクトリ内の Dockerfile に基づいて
myapp

という名前の最新バージョンのイメージを構築します。 次に、

docker run

コマンドを使用してコンテナを実行し、以下に示すように、対応するポート マッピングとその他の構成を指定します。 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>$ docker run -d -p 8080:8080 --name myapp-container myapp:latest</pre><div class="contentsignin">ログイン後にコピー</div></div>上記のコマンドは、

myapp-container

コンテナという名前のコンテナを作成し、コンテナ内の 8080 ポートをホストの 8080 ポートにマップします。

自動テスト スクリプトを作成する
    自動テストを実行するには、対応するテスト スクリプトを作成する必要があります。 Python を例に挙げると、
  1. unittest
    モジュールを使用してテスト ケースを作成できます。以下に簡単な例を示します。
    import unittest
    import requests
    
    class TestApp(unittest.TestCase):
        def setUp(self):
            self.url = 'http://localhost:8080/'
    
        def tearDown(self):
            pass
    
        def test_hello(self):
            response = requests.get(self.url + 'hello')
            self.assertEqual(response.status_code, 200)
            self.assertEqual(response.text, 'Hello, world!')
    
    if __name__ == '__main__':
        unittest.main()
    ログイン後にコピー
  2. 上記の例では、
setUp

メソッドを使用してテスト環境を初期化し、tearDown メソッドを使用します。テスト環境をクリーンアップするために使用されます。 test_hello メソッドは、requests ライブラリを使用して HTTP リクエストを送信し、返された結果が期待を満たしているかどうかを判断するためのアサーションを行う特定のテスト ケースです。

自動テストの実行
    テスト スクリプトの作成が完了したら、ホスト上でテスト スクリプトを実行することで、コンテナ上で自動テストを実行できます。テスト スクリプトが
  1. test_app.py
    として保存されていると仮定すると、次のコマンドを使用してテスト スクリプトを実行できます:
    $ python test_app.py
    ログイン後にコピー
  2. 2. Docker 監視

Prometheus 監視を使用する
    Prometheus は、Docker エコシステムで広く使用されているオープンソース監視システムです。 Prometheus は、時系列データを収集および保存し、柔軟なクエリおよび視覚化機能を提供することで、コンテナ監視を強力にサポートします。

  1. まず、Prometheus をコンテナにインストールして構成する必要があります。これは、Dockerfile に対応する命令を追加することで実現できます。具体的な手順は次のとおりです:

Prometheus をダウンロードしてインストールする
  • FROM prom/prometheus:v2.26.0
    
    COPY prometheus.yml /etc/prometheus/
    ログイン後にコピー
Prometheus 構成を作成するfile
    prometheus.yml
  • global:
      scrape_interval: 5s
    
    scrape_configs:
      - job_name: 'myapp'
        static_configs:
          - targets: ['myapp-container:8080']
    ログイン後にコピー
  • 上記の設定ファイルでは、
scrape_interval

でデータ収集の間隔を指定し、scrape_configs でデータ収集の間隔を定義します。監視対象。

Prometheus コンテナの起動
    Dockerfile と構成ファイルの作成が完了したら、次に示すように、
  1. docker run
    コマンドを使用して Prometheus コンテナを起動できます。
    $ docker run -d -p 9090:9090 -v /path/to/prometheus.yml:/etc/prometheus/prometheus.yml --name prometheus prom/prometheus:v2.26.0
    ログイン後にコピー
    上記のコマンドは、prometheus

    という名前のコンテナを実行し、コンテナ内の 9090 ポートをホストの 9090 ポートにマップし、prometheus.yml をマウントします。ホスト上の ファイルをコンテナーに追加します。

    Prometheus Web インターフェイスにアクセスする
      Prometheus コンテナの起動が完了したら、ブラウザ。このインターフェイスでは、PromQL クエリ言語を通じてデータをクエリし、視覚化できます。

    1. 概要
    2. この記事では、Linux で Docker を使用してコンテナーのテストと監視を自動化する方法を紹介します。自動テストを実行する場合は、Dockerfile を作成し、コンテナーを構築して実行し、テスト用に対応するテスト スクリプトを作成する必要があります。コンテナーを監視する場合、Prometheus を使用して時系列データを収集および保存し、クエリと視覚化に PromQL を使用できます。上記の方法により、Docker コンテナをより適切に管理および監視し、アプリケーションの安定性と信頼性を確保できます。

    参考資料:

    Docker 公式ドキュメント: https://docs.docker.com/

    Prometheus 公式ドキュメント: https://prometheus.io/ docs /

    以上がLinux での Docker: コンテナーのテストと監視を自動化するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート