LinuCレベル3 プラットフォームスペシャリスト コンテナ技術の利用 問12
コンテナ技術の利用/コンテナの基本原理と内部構造システムコンテナとアプリケーションコンテナの違いの説明として適切なものはどれか。
当サイトのオリジナル問題(LinuCレベル3 プラットフォームスペシャリストの出題範囲「コンテナ技術の利用」に対応。実際の試験問題ではありません)
- Aシステムコンテナはホストとは別のカーネルを起動して動かし、アプリケーションコンテナはホストのカーネルを共有して動く
- Bシステムコンテナはsystemd等のinitをPID 1として複数のサービスを動かし、アプリケーションコンテナは主に単一のアプリを動かす
- Cシステムコンテナはroot権限でしか起動できず、アプリケーションコンテナは一般ユーザーの権限でしか起動できない
- DシステムコンテナはOCIイメージからしか作れず、アプリケーションコンテナはディストリビューションのルートFSからしか作れない
正解: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イメージからアプリケーションコンテナを作ることもできます。