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コンテナには以下のようなものがある。

 LXD, Canonicalによって開発されたLXCの代替ラッパー。
 Podman: Dockerのドロップイン代替品
 Charliecloud: HPCシステムで使用されるコンテナ・ツールの一式
 Kata Containers MicroVMプラットフォーム
 Bottlerocketは、仮想マシンやベアメタルホスト上でコンテナを実行するためにAmazon Web Servicesが専用に開発したLinuxベースのオープンソース・オペレーティング・システムである。
 CBL-Marinerは、Microsoft Azureが開発したオープンソースのLinuxディストリビューションで、Fedora CoreOSに類似している。

関連項目 

 コンテナオーケストレーション
 Linuxのネームスペース
 Linuxのcgroups
 サンドボックス (ソフトウェア開発)
 Container Linux
 ハイパーバイザ
 ポータブルアプリケーションクリエイター
 Open Container Initiative
 分離カーネル
 サーバーレス・コンピューティング
 スナップパッケージマネージャ
 ストレージハイパーバイザー
 バーチャル・プライベート・サーバ
 仮想リソースパーティショニング

脚注

注釈

出典 

オペレーティングシステムの仕組み
OSのセキュリティ技術
Linux