オリジナル問題 LinuCレベル3 プラットフォームスペシャリスト試験 問題 問1
コンテナ技術の利用/コンテナの基本原理と内部構造LXC/LXD(Incus)に代表される「システムコンテナ」と、Dockerに代表される「アプリケーションコンテナ」の違いに関する説明として適切なものはどれか。
出典:オリジナル問題 LinuCレベル3 プラットフォームスペシャリスト試験 問題 問1
- Aシステムコンテナはinitプロセスを持ち複数のサービスが稼働する、OSに近い環境をコンテナとして扱うのに対し、アプリケーションコンテナは通常、単一のアプリケーション(プロセス)を動かすことに主眼を置く
- Bアプリケーションコンテナはホストと異なるカーネルを持ち、システムコンテナはホストとカーネルを共有しない
- Cシステムコンテナとアプリケーションコンテナは同じ技術の呼び方の違いに過ぎず、設計思想に違いはない
- Dシステムコンテナは仮想マシンと完全に同じ仕組みであり、名前空間やcgroupsを使わない
正解:A
解説
LXC/LXD(Incus)は「システムコンテナ」と呼ばれ、initプロセスを起点として複数のサービス・プロセスが稼働する、OSに近い実行環境をコンテナとして提供します。一方Dockerに代表される「アプリケーションコンテナ」は、通常1つのコンテナで1つのアプリケーション(プロセス)を動かすことを基本的な設計思想としています。どちらも名前空間やcgroupsといった同じLinuxカーネル機能を基盤にしている点は共通です。
選択肢ごとの解説
- A正しい。システムコンテナはOSに近い複数プロセスの環境、アプリケーションコンテナは単一アプリケーションに主眼を置きます。
- B誤り。システムコンテナ・アプリケーションコンテナのいずれも、通常はホストとカーネルを共有します(ホストと異なるカーネルを持つのは仮想マシンの特徴です)。
- C誤り。システムコンテナとアプリケーションコンテナは、扱う対象(OS的環境か単一アプリか)という設計思想の違いがあり、単なる呼び方の違いではありません。
- D誤り。システムコンテナも名前空間やcgroupsを使うコンテナ技術であり、仮想マシンと完全に同じ仕組みではありません。