問題
コンテナ型仮想化(Dockerなど)と従来のハイパーバイザー型仮想化の主な違いはどれか。
選択肢
- 1コンテナは各コンテナが独自のOSカーネルを持つ
- 2コンテナはホストOSのカーネルを共有し起動が高速で軽量である
- 3ハイパーバイザー型はOSを使わずアプリのみ実行する
- 4コンテナはハイパーバイザー型より分離性が常に高い
正解
2. コンテナはホストOSのカーネルを共有し起動が高速で軽量である
詳しい解説を見る解説を閉じる
解説
コンテナ型仮想化は、ホストOSのカーネルを全コンテナで共有し、名前空間(namespace)やcgroupsといったOSの機能でプロセス・ファイルシステム・ネットワークを論理的に隔離する技術である。ゲストOSを個別に起動する必要がないため、ハイパーバイザー型に比べて起動が数秒程度と高速で、メモリやディスクの消費も小さい。各コンテナが独自のOSカーネルを持つという記述は誤りで、ゲストOSごとにカーネルを持つのはハイパーバイザー型の仮想マシンの方である。ハイパーバイザー型がOSを使わないという記述も事実と逆である。カーネルを共有する分、コンテナの隔離性は一般に仮想マシンより緩く、「分離性が常に高い」も誤り。「コンテナ=軽量高速だが隔離は緩め、VM=重いが隔離が強い」とトレードオフで覚える。
一問一答
全400問を繰り返し学習