*特定の CPU を使用して Docker で Linux コンテナーを起動します *
コマンド 'cat /proc/cpuinfo をコンテナに入力すると、コンテナだけではなくラップトップの完全な仕様が表示されます。なぜこれが起こったのですか?
LXC は仮想化されたカーネルを提供しません。カーネルはホストとすべてのコンテナー間で共有されます。したがって、/proc
ファイル システムを見ると、(多くの場合) コンテナーの制限ではなく、カーネルが認識しているものがわかります。
コンテナーを特定の CPU で実行するように制限することはできますが、コンテナーをだましてシステムに他の CPU がないと思わせる方法がわかりません。
同様に、コンテナーでtop
実行すると、コンテナーのメモリを制限しても、ホストで使用可能な完全な RAM が表示されます。
コンテナーが独自の制限を学習する方法はわかりませんが、ホストから多くのメトリックを収集できます。http://blog.docker.io/2013/10/gathering-lxc-docker-containers-metrics/を参照してください。
オペレーティング システム レベルの仮想化を行っている場合、オペレーティング システムのカーネルは複数の分離されたユーザー空間インスタンスを許可します。お客様の要件に応じて、メモリと CPU を各コンテナーに割り当てることができます。これは、実行時またはコンテナ作成後のいずれかで実行できます。論理的には、構成ファイルの作成に使用されるすべての仮想化ツールは、メモリと CPU の使用量を処理します。
ここで説明されているように、-c オプションを使用して、多数の CPU シェアをコンテナーに割り当てることができるようになりました。