LXC
From Wikipedia, the free encyclopedia
LXC(英語: Linux Containers)は、1つのLinuxカーネルを実行しているコントロールホスト上で、複数の隔離されたLinuxシステム(コンテナ)を走らせる、OSレベル仮想化のソフトウェアである。
|
LXC (Linux Containers) の公式ロゴマーク。 | |
| 作者 | Daniel Lezcano(オリジナルの作者) |
|---|---|
| 開発元 | linuxcontainers.org(現在はプロジェクトでの開発) |
| 最新評価版 | |
| リポジトリ | |
| プログラミング 言語 | C |
| 対応OS | Linux |
| プラットフォーム | x86, x64, IA-64, PowerPC, SPARC, ARM |
| 対応言語 | 英語のみ(?)日本語対応しているかは不明。 |
| サポート状況 | 活発 |
| 種別 | OS、仮想化、クラウド、OSレベル仮想化、サーバ仮想化、無料のオープンソースソフトウェア |
| ライセンス | 大半がGNU LGPL v2.1+ |
| 公式サイト |
linuxcontainers |

Linuxカーネルが提供するcgroupsという機能を利用することで、リソース(CPU、メモリ、ブロックI/O、ネットワークなど)の制限と優先順位付けが可能になっており、そのために仮想マシンを使用する必要がない。また、名前空間の隔離機能を利用すれば、アプリケーションから見たオペレーティング・システムの環境を完全に隔離することができるため、プロセスツリー、ネットワーク、ユーザー識別子、マウントされたファイルシステムを仮想化することができる[2]。
LXCはカーネルのcgroupsと隔離された名前空間のサポートを組み合わせることで、アプリケーションのために隔離された環境を提供する。初期のバージョンのDockerはLXCをコンテナ実行ドライバとして利用していたが、Docker v0.9ではオプションとなり、Docker v1.10でサポートが終了した[3]。
概要
セキュリティ
以前は、LXCコンテナはOpenVZのようなOSレベルの仮想化メソッドと比べてセキュリティが劣っていた。バージョン3.8以前のLinuxカーネルでは、chroot jailとほとんど同じようにゲストシステムのrootユーザーがホストシステムのroot権限で任意のコードを実行することが可能だった[4][5][6][7]。しかし、LXC 1.0 リリース後は、「非特権コンテナ」を用いてコンテナをホスト上の通常ユーザーとして実行することが可能となった[8]。非特権コンテナはハードウェアに直接アクセスできないという意味でより制限されている。また、LXC 1.0 のセキュリティモデルでは、適切に設定すれば特権コンテナでさえ十分な隔離を提供するとされる[8]。
代替
Linuxには、OpenVZやLinux-VServerといった類似のOSレベルの仮想化があり、他のOSでは、FreeBSD jailやSolaris Containersがある。
関連項目
- Open Container Initiative
- CoreOS
- Docker - ソフトウェアコンテナ上にアプリケーションを自動デプロイできるようにするプロジェクト
- Apache Mesos - コンテナの隔離をベースにした大規模クラスタ管理プラットフォーム
- OSレベルの仮想化
- Proxmox VE - LXCコンテナとKVMをサポートするオープンソースのサーバ仮想化管理プラットフォーム
- Anbox - Androidアプリケーションを別のLinuxディストリビューション上で実行するためにLXCを利用している