最終更新:
DockerとLXCの違いは?アプリ・システムコンテナと技術の系譜
OCIは何をそろえるの?
イメージ、実行、配布に関する仕様を定める取り組みだよ。異なるツールでコンテナを扱う土台になる。ただし仕様に対応することだけで、CPUアーキテクチャやOS、権限、すべての運用機能が同じになるわけではないね。
KubernetesはDockerだけを動かす?
KubernetesはCRIというインターフェースでランタイムと連携する。containerdやCRI-Oなどが選択肢で、Docker Engineだけに依存しないよ。Dockerで作ったイメージを扱うことと、ノードでDocker Engineを使うことは別なんだ。
どう使い分けるとよい?
管理したい単位を比べる
| 観点 | Docker | LXC |
|---|---|---|
| 主な使い方 | アプリやサービスをイメージで配布 | Linuxシステム環境の作成・管理 |
| カーネル | Linuxコンテナでは共有 | Linuxカーネルを共有 |
| 複数プロセス | 実行可能。責任の分離を推奨 | システムサービスを含む環境も扱う |
| VMとの違い | ゲストカーネルを独立起動しない | OSのように見えてもカーネルは共有 |
移行はイメージの名前変更ではない
DockerとLXCでは、イメージの作り方、起動の管理、ネットワーク、データ保存の運用が異なります。移行ではアプリの設定とデータを取り出し、移行先で同じ動作になるかを確認します。コンテナ技術が共通でも、そのまま交換できるとは限りません。
カーネル共有とVMの違いはDockerとVMの比較、Dockerに近いアプリコンテナの代替はPodmanとの比較を参照してください。
参考資料
確認日:2026年9月27日。製品の仕様・料金・対応環境は導入時にも確認してください。
- Linux Containers: LXC introduction:ユーザー空間のインターフェース、システム・アプリコンテナ。
- Docker 0.9 announcement:2014年のlibcontainerとexecution driver。
- Docker: Multiple processes:1サービスと1プロセスの違い。
- OCI: Overview:イメージ・ランタイム・配布仕様。
- Kubernetes: Container runtimes:CRI、containerd、CRI-O、dockershimの関係。