Linux での Docker: コンテナーのテストと監視を自動化するには?
Linux 上の Docker: コンテナーの自動テストと監視を実行するにはどうすればよいですか?
コンテナ テクノロジーの急速な発展により、Docker は最も人気のあるコンテナ化プラットフォームの 1 つになりました。アプリケーションのデプロイと管理に Docker を使用するプロセスでは、コンテナの自動テストと監視が特に重要です。この記事では、Linux で Docker を使用してコンテナーのテストと監視を自動化する方法を紹介し、対応するコード例を示します。
1. Docker 自動テスト
- 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
ディレクティブを通じてコンテナの起動時に実行するコマンドを指定します。
- コンテナの構築と実行
Dockerfile の作成が完了したら、次に示すように、docker build
コマンドを使用して Docker イメージを構築できます。 #$ docker build -t myapp:latest .
ログイン後にコピー上記のコマンドは、現在のディレクトリ内の Dockerfile に基づいて
という名前の最新バージョンのイメージを構築します。 次に、
コマンドを使用してコンテナを実行し、以下に示すように、対応するポート マッピングとその他の構成を指定します。 <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>
上記のコマンドは、
コンテナという名前のコンテナを作成し、コンテナ内の 8080 ポートをホストの 8080 ポートにマップします。
- 自動テストを実行するには、対応するテスト スクリプトを作成する必要があります。 Python を例に挙げると、
- 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()
ログイン後にコピー上記の例では、
メソッドを使用してテスト環境を初期化し、tearDown
メソッドを使用します。テスト環境をクリーンアップするために使用されます。 test_hello
メソッドは、requests
ライブラリを使用して HTTP リクエストを送信し、返された結果が期待を満たしているかどうかを判断するためのアサーションを行う特定のテスト ケースです。
- テスト スクリプトの作成が完了したら、ホスト上でテスト スクリプトを実行することで、コンテナ上で自動テストを実行できます。テスト スクリプトが
- test_app.py
として保存されていると仮定すると、次のコマンドを使用してテスト スクリプトを実行できます:$ python test_app.py
ログイン後にコピー2. Docker 監視
Prometheus 監視を使用する
- Prometheus は、Docker エコシステムで広く使用されているオープンソース監視システムです。 Prometheus は、時系列データを収集および保存し、柔軟なクエリおよび視覚化機能を提供することで、コンテナ監視を強力にサポートします。
FROM prom/prometheus:v2.26.0 COPY prometheus.yml /etc/prometheus/
ログイン後にコピー
- prometheus.yml
global: scrape_interval: 5s scrape_configs: - job_name: 'myapp' static_configs: - targets: ['myapp-container:8080']
ログイン後にコピー上記の設定ファイルでは、
でデータ収集の間隔を指定し、scrape_configs
でデータ収集の間隔を定義します。監視対象。
- Dockerfile と構成ファイルの作成が完了したら、次に示すように、
- docker run
コマンドを使用して Prometheus コンテナを起動できます。上記のコマンドは、prometheus$ docker run -d -p 9090:9090 -v /path/to/prometheus.yml:/etc/prometheus/prometheus.yml --name prometheus prom/prometheus:v2.26.0
ログイン後にコピーという名前のコンテナを実行し、コンテナ内の 9090 ポートをホストの 9090 ポートにマップし、
Prometheus Web インターフェイスにアクセスするprometheus.yml をマウントします。ホスト上の
ファイルをコンテナーに追加します。- Prometheus コンテナの起動が完了したら、ブラウザ。このインターフェイスでは、PromQL クエリ言語を通じてデータをクエリし、視覚化できます。
-
概要
この記事では、Linux で Docker を使用してコンテナーのテストと監視を自動化する方法を紹介します。自動テストを実行する場合は、Dockerfile を作成し、コンテナーを構築して実行し、テスト用に対応するテスト スクリプトを作成する必要があります。コンテナーを監視する場合、Prometheus を使用して時系列データを収集および保存し、クエリと視覚化に PromQL を使用できます。上記の方法により、Docker コンテナをより適切に管理および監視し、アプリケーションの安定性と信頼性を確保できます。
参考資料:
Docker 公式ドキュメント: https://docs.docker.com/Prometheus 公式ドキュメント: https://prometheus.io/ docs /以上がLinux での Docker: コンテナーのテストと監視を自動化するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。
-

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Dockerコンテナを終了する4つの方法:コンテナ端子でCtrl Dを使用するコンテナターミナルに出口コマンドを入力しますDocker stop&lt; container_name&gt;コマンドを使用するDocker Kill&lt; container_name&gt;ホストターミナルのコマンド(フォース出口)

Dockerの外部ホストにファイルをコピーする方法:Docker CPコマンドを使用:Docker CP [Options]&lt; Container Path&gt; &lt;ホストパス&gt;。データボリュームの使用:ホストにディレクトリを作成し、-vパラメーターを使用してコンテナを作成するときにディレクトリをコンテナにマウントして、双方向ファイルの同期を実現します。

すべてのコンテナ(Docker PS)をリストする手順に従って、Dockerコンテナ名を照会できます。コンテナリストをフィルタリングします(GREPコマンドを使用)。コンテナ名(「名前」列にあります)を取得します。

Dockerコンテナを再起動する方法:コンテナID(Docker PS)を取得します。コンテナを停止します(docker stop&lt; container_id&gt;);コンテナを起動します(docker start&lt; container_id&gt;);再起動が成功していることを確認します(Docker PS)。その他の方法:Docker Compose(Docker-Compose Restart)またはDocker API(Dockerドキュメントを参照)。

DockerでMySQLを起動するプロセスは、次の手順で構成されています。MySQLイメージをプルしてコンテナを作成および起動し、ルートユーザーパスワードを設定し、ポート検証接続をマップしてデータベースを作成し、ユーザーはすべての権限をデータベースに付与します。

Docker画像を更新する手順は次のとおりです。最新の画像タグ新しい画像をプルする新しい画像は、特定のタグのために古い画像を削除します(オプション)コンテナを再起動します(必要に応じて)

Dockerプロセス表示方法:1。DockerCLIコマンド:Docker PS; 2。SystemDCLIコマンド:SystemCTL Status Docker; 3。CLIコマンドを作成するDocker:Docker-Compose PS。 4。プロセスエクスプローラー(Windows); 5。 /procディレクトリ(Linux)。

国内のミラーソースに切り替えることができます。手順は次のとおりです。1。構成ファイル/etc/docker/daemon.jsonを編集し、ミラーソースアドレスを追加します。 2。保存して終了した後、Docker Service Sudo SystemCtlを再起動してDockerを再起動して、画像のダウンロード速度と安定性を改善します。
