概要
コンテナ技術は、軽量な仮想化技術の一種で、アプリケーションとその依存関係をまとめてパッケージ化し、ホストOSレベルで隔離された環境で実行します。これにより、環境の違いによるアプリケーションの互換性問題を解消し、移植性や効率的なリソース利用を実現します。Dockerが代表的な実装です。
コンテナは、仮想マシンとは異なり、ホストOSのカーネルを共有します。そのため、オーバーヘッドが小さく、起動や停止が高速です。コンテナの分離は、名前空間、cgroupsなどのLinuxの機能を利用して実現されます。名前空間は、プロセスID、ネットワーク、マウントポイントなどを隔離し、cgroupsはリソース制限を管理します。イメージは、コンテナのテンプレートとなるファイルセットであり、レイヤー構造を持ち、再利用性と効率的な配布を可能にします。コンテナオーケストレーションツール (Kubernetesなど) は、コンテナ化されたアプリケーションのデプロイ、スケーリング、および管理を自動化します。