×
システム構成・性能・ソフトウェア

基本情報技術者試験や応用情報技術者試験において、「コンテナ」は近年のクラウドコンピューティングやDevOpsに関する文脈で頻出のキーワードです。問われやすいポイントとしては、「従来の仮想マシン(VM)による仮想化との違い」が挙げられます。試験問題では、「ゲストOSを必要とせず、ホストOSのカーネルを共有することで軽量かつ高速に動作する仮想化技術はどれか」といった説明文から、「コンテナ」を選ばせる問題が定番です。

また、「Docker」や「Kubernetes」といった具体的な技術名と共に、スケーラビリティ(拡張性)の向上やCI/CD(継続的インテグレーション/継続的デリバリー)を実現するための基盤技術として出題されることもあります。間違いやすい点としては、コンテナは「OSのカーネルを共有する」という性質上、Windowsのカーネル上で直接Linuxのネイティブなコンテナを動かすことは(エミュレーションなどの仕組みを挟まない限り)原則としてできないという、カーネル依存の制約があることを理解しておく必要があります。このカーネル共有の仕組みが、軽量さの理由でもあり、OSをまたぐ移動の制限にもなっているというトレードオフを意識しましょう。

関連する用語

コンテナを管理・運用する上で欠かせないのが「仮想化」の概念です。コンテナ自体も仮想化技術の一種ですが、より重厚なハイパーバイザ型の仮想化と比較されることがよくあります。また、システムを小さな独立したサービスの集合体として開発する「マイクロサービス」アーキテクチャとも非常に密接な関係にあり、各サービスを個別のコンテナとして稼働させることが一般的です。