メインコンテンツへ
システム構成要素

コンテナ型仮想化の説明として、最も適切なものはどれか。

ア.ハードウェアを直接制御するハイパーバイザをOS相当として動作させるため、ホストOSが不要である
イ.ホストOSのカーネルを共有することで、ゲストOSを個別に起動するよりも起動時間が短く、リソース消費量が少ない正解
ウ.ゲストOSをエミュレーションで動作させるため、ホストOSとは異なるCPUアーキテクチャのソフトウェアも実行できる
エ.コンテナごとに独立したカーネルを持つため、ハイパーバイザ型よりもセキュリティの分離性が高い

解説

コンテナは「同じマンションで部屋だけ仕切る」イメージです。ゲストOSという「別棟」を建てないので、起動が速くて荷物(リソース)も少なくて済みます。

なぜ イ が正解か

コンテナ型仮想化は、ホストOSのカーネルをそのまま共有し、プロセス・ファイルシステム・ネットワークの分離をOSの名前空間(namespace)機能とcgroupsで実現します。ゲストOSを一切起動しないため、仮想マシンと比べて起動は数秒以内と圧倒的に速く、メモリやディスクのオーバーヘッドも大幅に小さくなります。Dockerが代表例で、マイクロサービスの展開基盤として広く使われています。

なぜ ア は間違いか

これはType 1(ベアメタル)ハイパーバイザの説明です。VMware ESXiやMicrosoft Hyper-V Serverがこの形態で、ハイパーバイザが直接ハードウェアを制御するためホストOSは不要です。コンテナはあくまでホストOSの上で動作するため、ホストOSは必須です。

なぜ ウ は間違いか

これはQEMUのようなエミュレーターの説明に近いです。コンテナはエミュレーションではなくホストのカーネルシステムコールをそのまま使うため、原則として同一CPUアーキテクチャのバイナリしか実行できません(x86ホストでARMコンテナを動かすには別途エミュレーション層が必要です)。

なぜ エ は間違いか

逆です。コンテナはカーネルを共有するため、ハイパーバイザ型(各VMが独立したカーネルを持つ)と比べてセキュリティの分離性は低くなります。カーネルの脆弱性が悪用されると他のコンテナやホストにも影響が及ぶ可能性がある点が、コンテナ型の代表的なデメリットです。

出典: AI生成問題(学習用)