初期リソース制限付きでコンテナを作成
このステップでは、Docker コンテナを作成し、CPU とメモリの初期リソース制限を設定する方法を学びます。リソース制限は、単一のコンテナがホストマシンの全リソースを消費するのを防ぐために重要であり、他のコンテナやホスト自体のパフォーマンスに影響を与える可能性があります。
まず、Docker Hub からubuntuイメージをプルしましょう。このイメージをコンテナのベースとして使用します。
docker pull ubuntu:latest
イメージがプルされ、展開されることを示す出力が表示されるはずです。
次に、特定のリソース制限を設定したmy-limited-containerという名前のコンテナを作成します。docker runコマンドに--cpusと--memoryフラグを使用します。
--cpusフラグは、コンテナが使用できる CPU リソースの量を制限します。値は CPU コア数を表す浮動小数点数です。例えば、--cpus 0.5はコンテナが最大で CPU コアの半分を使用できることを意味します。
--memoryフラグは、コンテナが使用できるメモリ量を制限します。値はバイト、キロバイト (k)、メガバイト (m)、またはギガバイト (g) で指定できます。例えば、--memory 512mはコンテナのメモリ使用量を 512 メガバイトに制限します。
この例では、sleep infinityコマンドを実行するコンテナを作成します。このコマンドはコンテナを無期限に実行し続けます。CPU 使用量を 0.5 コア、メモリを 256 メガバイトに制限します。
docker run -d --name my-limited-container --cpus 0.5 --memory 256m ubuntu:latest sleep infinity
コマンドの詳細を説明します:
docker run: 新しいコンテナを作成して起動するコマンド
-d: コンテナをバックグラウンドで実行するデタッチドモードのフラグ
--name my-limited-container: コンテナにmy-limited-containerという名前を割り当て
--cpus 0.5: コンテナの CPU 使用量を 0.5 コアに制限
--memory 256m: コンテナのメモリ使用量を 256 メガバイトに制限
ubuntu:latest: 使用する Docker イメージ (最新版の Ubuntu)
sleep infinity: コンテナ内で実行されるコマンド。コンテナを実行状態に保つ
コマンド実行後、Docker はコンテナ ID を出力します。
コンテナが実行中でリソース制限が適用されていることを確認するには、docker inspectコマンドを使用します。このコマンドはコンテナの詳細情報を提供します。
docker inspect my-limited-container
docker inspectの出力は大きな JSON オブジェクトです。HostConfigセクション内のCpuSharesとMemoryフィールドを確認して、適用された制限を確認できます。--cpus 0.5はデフォルトでCpuShares値 512 に変換されます (1CPU=1024 シェア)。Memory値はバイト単位で表示されます。