最終更新:

DockerとLXCの違いは?アプリ・システムコンテナと技術の系譜


DockerとLXCの使い方の違い Docker アプリのイメージ配布に向く 1サービスへの責任分離を推奨 複数プロセスも実行可能 イメージと起動設定を管理 LXC Linuxシステム環境の管理に向く ユーザー空間のツール アプリコンテナも利用可能 ホストのカーネル機能を利用 どちらも通常はLinuxカーネルを共有 DockerとLXCの使い方の違い Docker アプリのイメージ配布に向く 1サービスへの責任分離を推奨 複数プロセスも実行可能 イメージと起動設定を管理 LXC Linuxシステム環境の管理に向く ユーザー空間のツール アプリコンテナも利用可能 ホストのカーネル機能を利用 どちらも通常はLinuxカーネルを共有
どちらも通常はLinuxカーネルを共有
ひよこ ひよこ
LXCはLinuxカーネルの機能名?
ペンギン先生 ペンギン先生
LXCは、Linuxカーネルの隔離機能を利用するユーザー空間のインターフェースだよ。namespaceやcgroupsなどを使い、コンテナを作って管理する。「LXCそのものがカーネルに取り込まれた」とは違うんだ。
ひよこ ひよこ
DockerとLXCは何が違うの?
ペンギン先生 ペンギン先生
Dockerはアプリと依存関係をイメージで配布し、サービスとして動かすワークフローに向くよ。LXCはLinuxのシステム環境を管理する用途でよく使われる。ただしLXCもアプリコンテナを扱えるので、用途は完全な二分法ではないね。
ひよこ ひよこ
LXCならVMと同じOSを動かせる?
ペンギン先生 ペンギン先生
Linuxのユーザー空間をOSのように扱えても、通常はホストのLinuxカーネルを共有するよ。独立したゲストカーネルを起動するVMとは違う。必要なカーネル機能や権限がホストにあるか確認するんだ。
ひよこ ひよこ
Dockerは昔LXCを使っていたの?
ペンギン先生 ペンギン先生
そうだよ。Docker 0.9では2014年3月にexecution driverとlibcontainerを導入し、LXCのツールに依存せず隔離機能を扱う方向へ進んだ。LXCがなくなったのではなく、Dockerの実行基盤が変わったということだね。
ひよこ ひよこ
ペンギン先生 ペンギン先生
推奨されるのは責任を分け、一つのサービスに集中させる考え方だよ。一つのサービスが複数のワーカープロセスを作ることもある。複数プロセスが動いたらDockerのルール違反、という意味ではないんだ。
ひよこ ひよこ
OCIは何をそろえるの?
ペンギン先生 ペンギン先生
イメージ、実行、配布に関する仕様を定める取り組みだよ。異なるツールでコンテナを扱う土台になる。ただし仕様に対応することだけで、CPUアーキテクチャやOS、権限、すべての運用機能が同じになるわけではないね。
ひよこ ひよこ
KubernetesはDockerだけを動かす?
ペンギン先生 ペンギン先生
KubernetesはCRIというインターフェースでランタイムと連携する。containerdやCRI-Oなどが選択肢で、Docker Engineだけに依存しないよ。Dockerで作ったイメージを扱うことと、ノードでDocker Engineを使うことは別なんだ。
ひよこ ひよこ
どう使い分けるとよい?
ペンギン先生 ペンギン先生
アプリ単位のイメージ配布と更新が目的ならDockerを検討する。Linuxのシステム環境を長く管理したいならLXCも候補になる。どちらでもネットワーク、ストレージ、権限、バックアップを設計し、VMが必要な条件かも確認しよう。

管理したい単位を比べる

観点DockerLXC
主な使い方アプリやサービスをイメージで配布Linuxシステム環境の作成・管理
カーネルLinuxコンテナでは共有Linuxカーネルを共有
複数プロセス実行可能。責任の分離を推奨システムサービスを含む環境も扱う
VMとの違いゲストカーネルを独立起動しないOSのように見えてもカーネルは共有

移行はイメージの名前変更ではない

DockerとLXCでは、イメージの作り方、起動の管理、ネットワーク、データ保存の運用が異なります。移行ではアプリの設定とデータを取り出し、移行先で同じ動作になるかを確認します。コンテナ技術が共通でも、そのまま交換できるとは限りません。

カーネル共有とVMの違いはDockerとVMの比較、Dockerに近いアプリコンテナの代替はPodmanとの比較を参照してください。

参考資料

確認日:2026年9月27日。製品の仕様・料金・対応環境は導入時にも確認してください。