Docker は、現在最も人気のあるコンテナ化テクノロジの 1 つで、アプリケーションを自己完結型コンテナ内で実行できるようにします。 Docker の重要な機能は、コンテナーの CPU とメモリの使用量を管理および制限できることです。これは、アプリケーションの高可用性と安定性を維持するために重要です。この記事では、Docker コンテナーのメモリ サイズを制限する方法に焦点を当てます。
1. Docker のメモリ管理を理解する
Docker では、各コンテナーに独自の名前空間とリソース制限があります。メモリ制限のあるコンテナは、次のコマンドを使用して起動できます。
docker run -it --memory 512m --name example_container ubuntu:latest
この例では、example_container という名前のコンテナを作成し、そのメモリ制限を 512MB に設定します。このコマンドは、コンテナーで使用されるベースイメージ (ubuntu:latest) も指定します。 「-it」記号は、コンテナーの stdin と stdout をそのターミナル セッションに接続するように Docker に指示する方法であることに注意してください。
上記のコマンドでは、次のコマンドを使用してコンテナの現在のメモリ使用量を確認できます:
docker stats example_container
このコマンドを使用すると、CPU 使用率、メモリ使用量、ネットワーク伝送速度などを表示できます。コンテナのリアルタイムの情報。
2. コンテナーのメモリを制限する方法
コマンド ライン オプションに加えて、コンテナーの実行中に次の方法を使用してコンテナーのメモリ使用量を制限することもできます。
# 1.「docker update」コマンドを使用します「docker update」コマンドを使用して、実行中のコンテナーのメモリ制限を変更できます。次のコマンドは、example_container のメモリ制限を 1GB に変更できます:docker update --memory 1g example_container2. docker-compose の使用Docker Compose 環境では、「mem_limit」キーワードを使用してメモリを設定できます。コンテナの限界。以下は、コンテナ構成ファイルの例です。コンテナの名前は「db」で、メモリ制限は 512MB に設定されています。
version: '3' services: db: image: mongo:4.4 mem_limit: 512mこの例では、コンテナのベースとして mongo:4.4 イメージを使用しました。画像を作成し、「db」という名前を付けます。 「mem_limit」キーワードで、このコンテナのメモリ制限を 512MB に設定します。 3. コンテナーのメモリ制限をテストする方法コンテナーのメモリ制限が有効かどうかを確認するために、コンテナー内でメモリを大量に消費するタスクを実行できます。ベンチマークツールstress-ngの「マトリックス」テスト。以下は、より多くのメモリを消費するために「matrix」テストを実行する例です:
docker exec example_container stress-ng --matrix 1 -t 10sこの例では、「docker exec」コマンドを使用して、実行中のコンテナ example_container でストレス ng の「matrix」を実行します。 「テスト、持続時間は10秒です。 テスト中に、次のコマンドを使用してコンテナーのメモリ使用量を観察できます:
docker stats example_container通常の状況では、stress-ng は指定されたテスト期間中に大量のメモリを占有するはずです。 。コンテナーが指定されたメモリ制限のみを正常に使用した場合、このテストの結果はメモリ不足状態になります。 概要この記事では、Docker コンテナのメモリ使用量を制限する方法を学びました。 Docker には、コンテナーのメモリ使用量を制御するいくつかの方法が用意されています。コンテナーの安定性と高可用性を維持するには、コンテナーのメモリ使用量を制限する必要があります。実験とベンチマークを通じて、コンテナーが指定されたメモリ制限を正しく遵守していることを検証できます。
以上がDockerコンテナのメモリサイズを制限する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。