LXC【Linux Containers】
概要

Linuxカーネルの二つの機能を用いて利用環境の分離を行う。「namespace」(名前空間)はプロセスIDやネットワーク、ファイルシステムなどをコンテナごとに独立して見せる仕組みで、「cgroups」はCPUやメモリ、ディスクI/Oの使用量をコンテナ単位で制御する仕組みである。
仮想マシン型の仮想化のように物理コンピュータのエミュレーションを行わず、カーネルを二重に起動しないため、消費メモリや処理負荷が小さく、起動も高速である。一方、ホストと異なるカーネルを動かすことはできないため、Windowsなど他のオペレーティングシステム(OS)を実行することはできない。
LXCが作る環境は「システムコンテナ」と呼ばれ、完全なLinuxディストリビューションをそのまま収容できる。コンテナ内ではSSHによるログインやsystemdを使ったサービス管理など、通常のLinuxサーバと同様の操作が行える。単一のアプリケーション実行に特化した「Docker」などとは異なり、複数のサービスを一つのコンテナ内で動かすなど、仮想マシンに近い利用形態が可能である。Webサーバやデータベースサーバを個別のコンテナとして運用したり、開発・検証環境を迅速に用意したり、一台の物理サーバに多数の環境を集約したりする用途に利用される。
LXCはLinux Containersプロジェクトが開発するオープンソースソフトウェアであり、主要なLinuxディストリビューションのパッケージリポジトリから導入できる。DockerはもともとLXCを実行基盤として採用していたが、のちに独自のランタイムへ移行した経緯がある。コンテナと仮想マシンを統合管理する「Incus」の基盤としても活用されており、長期サポート版(LTS)の提供を通じて継続的に開発が進められている。