Container and virtualization tools
linuxcontainers.org は LXD、LXC、LXCFS、distrobuilder を傘下に持つプロジェクトです
このプロジェクトの目的は、Linux のコンテナ技術を開発するための、ディストリビューションやベンダから中立の環境を提供することです。
私達は、完全な Linux システムを実行するコンテナと仮想マシンの提供にフォーカスを当てています。VM が完全な環境を提供するのに対して、システムコンテナは VM から得られる環境に可能な限り近い環境を提供します。システムコンテナでは、別のカーネルを実行したり、ハードウェアのシミュレートしたりすることによるオーバーヘッドはありません。

活動中のプロジェクト
LXD
LXD は、システムコンテナと仮想マシンのための次世代のマネージャーです。コンテナや仮想マシン内で実行される完全な Linux システムの統一された使い勝手や操作感を提供します。
LXD はイメージベースで、広範囲の Linux ディストリビューション用のイメージを提供しています。さまざまなタイプのストレージバックエンドやネットワークをサポートし、個人のラップトップやクラウドインスタンスからサーバーラック上のハードウェアまで、様々なハードウェアにインストールでき、色々なユースケースに対応する柔軟性と拡張性を備えています。
LXD を使うと、シンプルなコマンドラインツールや REST API を直接使ったり、サードパーティーのツールやインテグレーションを使ったりして、コンテナや仮想マシンといったインスタンスを管理できます。LXD はローカルとリモートからアクセスするための単一の REST API を実装しています。
LXC
LXC はツール群、テンプレート、ライブラリー、言語バインディングからなる広く知られたコンテナランタイムです。かなり低レベルであり、非常に柔軟で、アップストリームのカーネルがサポートするコンテナ関連機能をほぼすべてカバーしています。
LXC は LXD が内部的に使用する基本的な機能を提供しています。LXD が提供する lxc
というクライアントツールと混同しないようにしてください。
LXCFS
LXCFS は次の機能を提供するユーザースペースのファイルシステム(FUSE)です:
- cpuinfo, meminfo, stat, uptime のためにファイルを差し替えます(重ね合わせます)
- 一般ユーザ権限でも書き込める cgroupfs 互換のツリーを提供します
このファイルシステムは、システムコンテナのユーザが期待する情報を書き出すことによって、procfs、sysfs、cgroupfs の欠点を回避するようにデザインされます。
distrobuilder
distrobuilder は LXC/LXD 用のイメージ作成ツールで、次のような機能を持っています:
- 複雑なイメージの定義をシンプルな YAML で定義します
- 複数の出力フォーマットに対応します(chroot, LXD, LXC)
- 多数のディストリビューションとアーキテクチャに対応します
distrobulder のモダンな設計では、利用できる場合は事前にビルドされた公式イメージを利用します。 宣言型のイメージ定義(YAML)を採用し、ベースとなるイメージに対する色々な変更をサポートします。
廃止予定のプロジェクト
CGManager
CGManager は cgroup を管理するデーモンです。DBus API を通して、ネストした非特権コンテナであっても、コンテナを作成してそのコンテナの cgroup を管理できるように設計されています。