ソフトウェア
中級

コンテナ史 chroot→Docker→K8s 1979-2026(コンテナ史)

Container 50年史 1979-2026。chroot (1979 Unix V7 Bell Labs・初Process Isolation・Filesystem Sandbox限定)・FreeBSD Jail (2000 Poul-Henning Kamp・Process+Network+Filesystem分離 Container祖)・Solaris Zones (2004年2月 Sun Solaris 10・Branded Zone+Crossbow Network)・Linux VServer (2001 Jacques Gélinas FOSS・Mainline外)・OpenVZ (2005 Parallels SWsoft・Mainline外Patch)・Linux cgroups (2007 Google Paul Menage+Rohit Seth Mainline)+Linux namespaces (2002-2013 Eric Biederman・mnt+pid+net+user+ipc+uts+cgroup)・LXC Linux Containers (2008年8月 Daniel Lezcano IBM・cgroups+namespaces統合)・systemd-nspawn (2013 Lennart Poettering)・Docker (2013年3月20日 Solomon Hykes dotCloud→Docker Inc・LXCラップ→libcontainer 2014→runc OCI 2015・Hub Public Registry)・Docker Compose (2014)+Docker Swarm (2014)・rkt Rocket (2014 CoreOS→廃止)・OCI Open Container Initiative (2015年6月 Standard・runc+containerd+CRI-O Spec)・Kubernetes K8s (2014年6月 Google・Borg基盤・1.0 2015年7月)・etcd+CRI Container Runtime Interface・Helm Chart (2016)・Knative+OpenShift+Rancher・Podman (2018 RedHat Daemonless rootless)・containerd (2017 OCI Default)・k3s (2019 Rancher Edge)+k0s+microk8s (Lightweight)・nerdctl (2020 containerd CLI)・Buildx (Docker Multi-Arch)・Buildah+Skopeo (RedHat)・WebAssembly+wasmEdge+Krustlet (2024-26 K8s統合)・¥0 OSS。

0 回閲覧
0 いいね
2026/4/29 更新

概要

1979 年に Unix V7 で導入された chroot は、プロセスをファイルシステムのルートに限定するだけのサンドボックスであった。以降、プロセス分離とネットワーク分離を組み合わせたコンテナ概念が次々に登場し、2026 年現在ではマイクロサービスのデプロイ基盤として不可欠な技術へと発展した。
本稿では、chroot から始まり、FreeBSD Jail、Solaris Zones、Linux VServer、OpenVZ、LXC、Docker、Kubernetes までの主要マイルストーンを時系列で整理し、2025–2026 年の最新動向を交えて解説する。

主な特徴・仕組み

技術主な分離対象実装ベース代表的な実装主要なオープンソースプロジェクト
chrootファイルシステムカーネル機能なしなし
FreeBSD Jailプロセス・ネットワーク・ファイルシステムカーネルなしなし
Solaris Zonesプロセス・ネットワーク・ファイルシステムカーネルなしなし
Linux VServerプロセス・ファイルシステムカーネルなしなし
OpenVZプロセス・ネットワーク・ファイルシステムカーネルなしなし
LXCプロセス・ネットワーク・ファイルシステムカーネルなしなし
Dockerプロセス・ネットワーク・ファイルシステムLXC → libcontainer → runc2013OCI
KubernetesPod(複数コンテナ)CRI (containerd/CRI‑O)2014K8s 1.0 2015
  • 分離単位

    • chroot はファイルシステムのみ。
    • FreeBSD Jail 以降はプロセス・ネットワーク・ファイルシステムを同時に分離。
    • LXC は Linux カーネルの cgroups と namespaces を組み合わせ、プロセス・ネットワーク・ユーザー・IPC などを分離。
    • Docker は LXC をラップし、libcontainer で実際の名前空間を生成。2015 年に OCI で標準化。
    • Kubernetes は Pod という単位で複数コンテナをまとめ、スケジューリング・サービスディスカバリ・ローリングアップデートなどを提供。
  • 主要オープンソースプロジェクト

    • runc(2015): OCI 仕様に準拠した実行エンジン。
    • containerd(2017): Docker のデフォルトランタイム。
    • CRI‑O(2018): Kubernetes 用の軽量ランタイム。
    • Buildah / Skopeo(2018): イメージビルド・転送。
    • wasmEdge(2024): WebAssembly コンテナランタイム。

具体例・対応製品 (テーブル必須)

製品主要バージョンリリース年サポートOSCPU アーキテクチャ主要機能代表的なユースケース
Docker25.02025Linux, macOS, Windowsx86_64, ARM64イメージレジストリ、ComposeCI/CD、マイクロサービス
Kubernetes1.302026Linuxx86_64, ARM64, s390xPod、Service、Ingressクラウドネイティブアプリ
Podman4.72025Linuxx86_64, ARM64デーモンレス、rootless開発環境、CI
containerd1.72025Linuxx86_64, ARM64ランタイム、CRIKubernetes、OpenShift
OpenVZ7.02024Linuxx86_64OS レベル仮想化ホスティングサービス
rkt (Rocket)1.02017Linuxx86_64セキュリティ重視古い CoreOS 環境
wasmEdge0.82025Linuxx86_64, ARM64WebAssembly コンテナエッジコンピューティング
k3s1.272025Linuxx86_64, ARM64軽量 K8sIoT、エッジデバイス
microk8s1.282026Linuxx86_64, ARM64スタンドアロン K8s開発者向け、ローカル環境
Helm3.122025Linux, macOS, Windowsx86_64, ARM64チャート管理アプリケーションデプロイ
  • 数値スペック
    • Docker 1.0 は 2013 年 3 月 20 日にリリース。
    • Kubernetes 1.0 は 2015 年 7 月に正式リリース。
    • containerd 1.0 は 2017 年 10 月にリリース。
    • Podman 4.0 は 2024 年 9 月にリリース。
    • k3s 1.20 は 2019 年 9 月にリリース。
    • Helm 3.0 は 2019 年 10 月にリリース。
    • wasmEdge 0.5 は 2023 年 6 月にリリース。

選び方・注意点

  1. 運用環境の制約
    • ハイパーバイザー が不要で、OS レベルでの軽量化を重視するなら containerd + Kubernetes。
    • rootless が必須なら Podman で代替可能。
  2. セキュリティ要件
    • OpenVZ はカーネルパッチが必要で、アップデートが遅い。
    • rkt は AppArmor/SELinux と組み合わせて高い隔離性を実現。
  3. 開発・CI での高速化
    • Buildah + Skopeo でイメージのビルド・プッシュを高速化。
    • Docker Compose はマルチコンテナ開発に便利。
  4. エッジ・IoT
    • k3s や microk8s は 5–10 MB の軽量化で、ARM64 デバイスに最適。
    • wasmEdge は WebAssembly を直接実行でき、バイナリサイズが 1–2 MB。

関連用語との違い

  • chroot
    • ファイルシステムのみを隔離。
    • ネットワークやプロセスは共有。
  • Docker
    • chroot を拡張し、名前空間と cgroups を併用。
    • イメージレジストリ、Compose で開発フローを統合。
  • Kubernetes
    • コンテナ単位ではなく Pod 単位でスケジューリング。
    • サービスディスカバリ、ロードバランシング、自己修復機能を提供。
  • OpenVZ
    • Linux カーネルのパッチで OS レベル仮想化。
    • コンテナ内で完全な OS 環境を提供。
  • Podman
    • Docker と同一 CLI でデーモンレス実行。
    • rootless モードが標準。

よくある質問 (FAQ)

  1. Q: Docker と Podman の主な違いは何ですか?
    A: Docker はデーモンベースで root 権限が必要。Podman はデーモンレスで rootless が可能。
  2. Q: Kubernetes の CRI‑O と containerd の違いは?
    A: CRI‑O は Kubernetes 専用の軽量ランタイム。containerd は汎用ランタイムで Docker も内部で利用。
  3. Q: wasmEdge を Kubernetes で使うにはどうすればいいですか?
    A: wasmEdge を CRI‑O のランタイムとして登録し、Pod の runtimeClassName に wasmedge を指定。

まとめ

1979 年の chroot から始まり、2000 年代に入りプロセス・ネットワーク・ファイルシステムを同時に分離する技術が登場。2013 年に Docker が LXC をラップし、OCI で標準化。2014 年に Kubernetes が Borg をベースに開発され、マイクロサービスのデプロイ基盤として定着。2025–2026 年では、WebAssembly コンテナランタイムや軽量 K8s ディストリビューション(k3s、microk8s)がエッジや IoT で注目され、OCI 仕様の拡張により多様なランタイムが共存。
コンテナ技術は「軽量化」「自動化」「セキュリティ」の三本柱を軸に進化を続けており、今後も新しいランタイムやオーケストレーションの統合が期待される。

この記事について
カテゴリーソフトウェア
難易度中級
作成日2026/4/29