OSレベルの仮想化

OSレベルの仮想化（英:OS-level virtualization）とは、オペレーティングシステム（OS）の枠組みで、コンテナ（LXC、Solaris containers、Docker、Podman）、zones（Solaris containers）、virtual private servers（OpenVZ）、パーティション、仮想環境（VEs）、仮想カーネル（DragonFly BSD）、jails（FreeBSD jailまたはchroot jail）と呼ばれる、複数の分離したユーザー空間インスタンスをカーネルによって割り当てる。このようなインスタンスはその中で実行されているプログラムからの視点では実際のコンピュータのように見えることがある。通常のOS上で動作するコンピュータプログラムは、そのコンピュータのすべての資源（接続されているデバイス、ファイルやフォルダ、ネットワーク共有、CPU性能、定量化できるハードウェア能力）を見ることができる。しかし、コンテナ内で動作するプログラムは、コンテナの内部とコンテナに割り当てられたデバイスしか見ることができない。
Unix系OSではこの機能は現在実行中のプロセスとその子プロセスの見かけ上のルートフォルダを変更する、標準的なchrootメカニズムの高度な実装と見なすことができる。カーネルはしばしばアイソレーションメカニズムに加えて、あるコンテナの活動が他のコンテナに与える影響を制限するための資源管理機能を提供する。Linuxコンテナは、Linuxカーネルが提供する仮想化、アイソレーション、資源管理のメカニズム、特に Linux名前空間と cgroupsをベースにしている。
コンテナという用語は、OSレベルの仮想化システムを指すのが一般的だが、MicrosoftのHyper-Vコンテナのように、ホストOSとさまざまなレベルで協調して動作する完全な仮想マシン環境を指すのにも多義的に使用されることがある。
実装.
上記以外のLinuxコンテナには以下のようなものがある。