LXC

出典: フリー百科事典『ウィキペディア(Wikipedia)』
ナビゲーションに移動 検索に移動
LXC (Linux Containers)
Linux Containers logo.png
作者 Dwight Schauer
最新版 3.1.0 / 2018年12月14日(11か月前) (2018-12-14[1]
リポジトリ github.com/lxc/lxc
プログラミング言語 C
対応OS Linux
プラットフォーム x86, x64, IA-64, PowerPC, SPARC, ARM
サポート状況 活発
種別 OSレベル仮想化
ライセンス 大半がGNU LGPL v2.1+
公式サイト linuxcontainers.org
テンプレートを表示
LXClibvirt

LXC英語: Linux Containersは、1つのLinuxカーネルを実行しているコントロールホスト上で、複数の隔離されたLinuxシステム(コンテナ)を走らせる、OSレベル仮想化のソフトウェアである。

Linuxカーネルcgroupsという機能を提供を利用することで、リソース(CPU、メモリ、ブロックI/O、ネットワークなど)の制限と優先順位付けが可能になっており、そのために仮想マシンを使用する必要がない。また、名前空間の隔離英語版機能を利用すれば、アプリケーションから見たオペレーティング・システムの環境を完全に隔離することができるため、プロセスツリー、ネットワークユーザー識別子マウント英語版されたファイルシステムを仮想化することができる[2]

LXCはカーネルのcroupsと隔離された名前空間のサポートを組み合わせることで、アプリケーションのために隔離された環境を提供する。初期のバージョンのDockerはLXCをコンテナ実行ドライバとして利用していたが、Docker v0.9ではオプションとなり、Docker v1.10でサポートが終了した[3]

概要[編集]

LXCは、Linuxカーネル 2.6.29から利用可能になったcgroupsに依存している。また、LXCは他の名前空間を隔離する機能にも依存しており、それらはLinuxカーネルのメインラインに統合されている。

2014年2月20日にLXC 1.0 がリリースされた。Ubuntu 14.04 LTSなどに含まれ、安定版ブランチがgitに作られ、1.0 以降は API は上位互換性を保つ。

セキュリティ[編集]

以前は、LXCコンテナはOpenVZのようなOSレベルの仮想化メソッドと比べてセキュリティが劣っていた。バージョン3.8以前のLinuxカーネルでは、chroot jailとほとんど同じようにゲストシステムのrootユーザーがホストシステムのroot権限で任意のコードを実行することが可能だった[4][5][6][7]。しかし、LXC 1.0 リリース後は、「非特権コンテナ」を用いてコンテナをホスト上の通常ユーザーとして実行することが可能となった[8]。非特権コンテナはハードウェアに直接アクセスできないという意味でより制限されている。また、LXC 1.0 のセキュリティモデルでは、適切に設定すれば特権コンテナでさえ十分な隔離を提供するとされる[8]

代替[編集]

Linuxには、OpenVZLinux-VServerといった類似のOSレベルの仮想化があり、他のOSでは、FreeBSD jailSolaris Containersがある。

関連項目[編集]

出典[編集]

  1. ^ LXC 3.1 has been released
  2. ^ Rami Rosen (2013年5月). “Resource management: Linux kernel namespaces and cgroups (PDF)”. cs.ucsb.edu. 2015年2月11日閲覧。
  3. ^ “Docker 0.9: introducing execution drivers and libcontainer - Docker Blog” (英語). Docker Blog. (2014年3月10日). https://blog.docker.com/2014/03/docker-0-9-introducing-execution-drivers-and-libcontainer/ 2018年5月9日閲覧。 
  4. ^ Marco, d'Itri (2011年). “Evading from linux containers”. 2014年1月9日時点のオリジナルよりアーカイブ。2014年2月12日閲覧。
  5. ^ LXC - Gentoo Linux Wiki
  6. ^ Evading from linux containers
  7. ^ LXC入門 - Osc2011 nagoya” (2011年8月26日). 2017年9月10日閲覧。
  8. ^ a b Graber, Stéphane (2014年1月1日). “LXC 1.0: Security features [6/10]”. 2014年2月12日閲覧。 “However, at least in Ubuntu, our default containers ship with what we think is a pretty good configuration of both the cgroup access and an extensive apparmor profile which prevents all attacks that we are aware of. [...] LXC is no longer running as root so even if an attacker manages to escape the container, he’d find himself having the privileges of a regular user on the host

外部リンク[編集]