過去問ドリル

LinuCレベル3 プラットフォームスペシャリスト コンテナ技術の利用 問12

コンテナ技術の利用/コンテナの基本原理と内部構造

システムコンテナとアプリケーションコンテナの違いの説明として適切なものはどれか。

当サイトのオリジナル問題(LinuCレベル3 プラットフォームスペシャリストの出題範囲「コンテナ技術の利用」に対応。実際の試験問題ではありません)

正解:B

解説

システムコンテナ(LXC、LXD/Incus等)は、コンテナ内でsystemd等のinitをPID 1として起動し、sshdやcron等の複数のサービスを動かして、仮想マシンに近い感覚で1台のOS環境として扱います。アプリケーションコンテナ(Docker、Podman等)は、Webサーバー等の単一のアプリケーションプロセスを動かすことを基本とし、イメージを差し替えて作り直す運用に向いています。どちらもホストのカーネルを共有し、名前空間とcgroupsで分離される点は同じです。どちらの方式でも、ユーザー名前空間を使えば一般ユーザーの権限でコンテナを起動できます。

選択肢ごとの解説

  • A誤り。どちらもホストのカーネルを共有するコンテナです。別のカーネルを起動するのは仮想マシンやKata Containers等の方式です。
  • B正しい。システムコンテナはinitから複数のサービスを動かすOS環境として、アプリケーションコンテナは単一のアプリ用として使うのが基本です。
  • C誤り。起動に必要な権限でこの2つが分かれるわけではなく、どちらもユーザー名前空間を使えば一般ユーザーでも起動できます。
  • D誤り。イメージの形式で2つが区別されるわけではありません。IncusはOCIイメージからアプリケーションコンテナを作ることもできます。
LinuCレベル3 プラットフォームスペシャリストの問題を演習モードで解く