LinuCレベル2 コンテナ 問1
コンテナ/コンテナの仕組み物理マシン・仮想マシン・コンテナの違いに関する説明として適切なものはどれか。
当サイトのオリジナル問題(LinuCレベル2の出題範囲「コンテナ」に対応。実際の試験問題ではありません)
- AコンテナはホストOSのカーネルを共有し、名前空間やcgroupsでプロセスとリソースを分離する
- Bコンテナは仮想マシンと同様に、それぞれが独立したカーネルとブートローダーを持つ
- C物理マシン・仮想マシン・コンテナはすべて同じ抽象化レベルの技術であり、実装上の違いがあるだけである
- D仮想マシンはホストOSのカーネルを共有し、コンテナは独立したカーネルを持つ
正解:A
解説
物理マシンはハードウェアそのもの、仮想マシンはハイパーバイザーによってハードウェアごとエミュレートしゲストOS(独立したカーネル)を稼働させます。一方コンテナは、ホストOSのカーネルを共有しつつ、名前空間(namespace)でプロセスやネットワーク等の見え方を分離し、cgroupsでリソース使用量を制限することで、独立した実行環境を実現する、仮想マシンより軽量な仮想化技術です。
選択肢ごとの解説
- A正しい。コンテナはカーネルを共有しつつ、名前空間とcgroupsで分離を実現します。
- B誤り。独立したカーネルを持つのは仮想マシンで、コンテナはホストのカーネルを共有します。
- C誤り。ハードウェアを仮想化する仮想マシンと、OSレベルで分離するコンテナでは抽象化の層が異なります。
- D誤り。カーネルを共有するのはコンテナの側で、説明が入れ替わっています。