【エルエックスシー】

LXC とは?

💡 Dockerの原型となったLinux純正コンテナ技術
📌 このページのポイント
LXC — カーネル共有の軽量コンテナ Container 1 App A Libs / Bins Container 2 App B Libs / Bins Container 3 App C Libs / Bins namespace(分離) cgroups(リソース制限) PID / ネットワーク / ファイルシステム CPU / メモリ / I/O を制限 Linuxカーネル(共有) ハードウェア VMとの違い VMは各インスタンスに Guest OSが必要 LXCはGuest OS不要 → 軽量・高速起動
LXCのコンテナ構造:カーネルを共有して軽量に隔離
ひよこ ひよこ

LXCって何?

ペンギン先生 ペンギン先生

Linux Containersの略で、Linuxカーネルのnamespaceとcgroupsという機能を直接使ってコンテナを作る技術だよ。2008年に登場した、コンテナ技術の草分け的存在なんだ。

ひよこ ひよこ

Dockerと何が違うの?

ペンギン先生 ペンギン先生

実はDockerは最初、LXCをバックエンドとして使っていたんだよ。Docker 0.1(2013年)はLXCの上に使いやすいツール層を乗せたものだったんだ。

ひよこ ひよこ

じゃあ今のDockerはLXCを使ってないの?

ペンギン先生 ペンギン先生

そうだよ。2014年にDockerはlibcontainerという独自ランタイムに移行してLXCへの依存をなくしたんだ。Linuxだけでなく他のOSにも対応しやすくするための決断だったんだね。

ひよこ ひよこ

今もLXCって使われてるの?

ペンギン先生 ペンギン先生

使われているよ。Proxmox VEというサーバー仮想化プラットフォームはLXCを採用していて、VMより軽いシステムコンテナとして活躍しているんだ。DockerがアプリコンテナならLXCはOSに近いシステムコンテナという位置づけだね。

ひよこ ひよこ

DockerとLXCって今でも競合してるの?

ペンギン先生 ペンギン先生

直接の競合というより、用途が棲み分けているよ。Dockerはアプリのデプロイや開発環境向け、LXCはVMの代替として丸ごとのOS環境を動かす用途に使われることが多いんだ。OCIという共通標準で業界全体が協調しているよ。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「LXC」って出てきたら「Dockerの前身となったLinux純正コンテナ技術のことだな」と思えればだいたいOK!
📖 おまけ:英語の意味
「Linux Containers」 = Linuxコンテナ
💬 Linuxカーネルの機能を使ってコンテナ(container=隔離された箱)を作ることからこの名前だよ
← 用語集にもどる