Kubernetes Learning 第3章:Dockerとの関係

Kubernetesを学び始めると、「そもそもDockerとKubernetesってどう違うの?」「Kubernetesを使うならDockerはもういらないの?」といった疑問が浮かぶと思います。これは非常に本質的な質問で、Kubernetesを正しく理解するための重要なポイントです。


🚢 Dockerとは何か(おさらい)

まず、Dockerは**「アプリケーションとその実行環境を1つの箱(コンテナ)にまとめる」ための技術**です。
例えば、あるWebアプリケーションが Node.js 18 で動いていて、特定のバージョンのライブラリが必要な場合、それをDockerコンテナとしてパッケージしておけば、どの環境でも同じように動かせます。

つまりDockerは、”アプリの実行単位(箱)” をつくるための道具です。


⚙️ Kubernetesとは何か(比較)

一方、Kubernetesは**「その箱(Dockerコンテナ)を大量に動かし、監視し、自動で配置・復旧させる仕組み」です。
つまり、Dockerが1つのアプリを動かすのに対し、Kubernetesは
たくさんのアプリ(コンテナ)を管理・運用するプラットフォーム**です。

観点DockerKubernetes
役割コンテナの作成・実行コンテナの配置・スケーリング・復旧など
単位コンテナ単体クラスタ全体の管理
実行例docker run nginxkubectl apply -f nginx.yaml

🔄 実際にはどう連携しているの?

Kubernetesは、自分で直接コンテナを実行するわけではありません
実際にコンテナを起動するのは、Nodeにインストールされている「コンテナランタイム」です。

昔はこのランタイムとして Dockerエンジン を使うことが多かったのですが、現在のKubernetes(v1.20以降)では、Dockerは直接サポートされていません。代わりに、以下のような軽量なコンテナランタイムが使われます:

  • containerd(Dockerから分離した、よりシンプルなランタイム)
  • CRI-O(Kubernetes向けに最適化されたランタイム)

つまり、

🟡 開発時(ローカル)
→ Dockerでイメージを作成する(例:docker build

🟢 運用時(クラスタ)
→ Kubernetesが containerd などを通じてそのイメージを使ってPodを実行する


❓ Dockerはもういらないの?

いりませんとは言い切れません。

  • ローカル開発環境ではDockerは今も有力なツールです。
    アプリを素早く試す、ビルドする、テストするために便利です。
  • 本番運用では、KubernetesがDocker以外のランタイムで動いていても問題なしです。
    ビルドされたDockerイメージは、containerdなどでもそのまま使えます。

🧠 まとめ

  • Dockerは「アプリケーションをコンテナ化」する技術
  • Kubernetesは「たくさんのコンテナを自動で管理・運用」する仕組み
  • Kubernetesは今やDockerではなくcontainerdなどのランタイムで動いているが、Dockerで作ったイメージはそのまま使える
  • ローカルではDocker、クラウドではKubernetesのように役割分担が変わってきている

mh

Related Posts

Kubernetes Learning 第5章:kubectl の基本操作(get / describe / logs / exec)

Kubernetesクラスタを操作するための最重要ツールが …

Kubernetes Learning 第4章:Kubernetesを触ってみよう(最小構成で試す)

Minikube / kind / ローカル環境の選定と構築…

You Missed

Kubernetes Learning 第5章:kubectl の基本操作(get / describe / logs / exec)

  • 投稿者 mh
  • 5月 9, 2025
  • 15 views

Android application development 第9章:イベントリスナーの定義(Java視点からの違和感に注意)

  • 投稿者 mh
  • 5月 9, 2025
  • 16 views

Android application development 第8章:XMLによるUI記述とコードの連携

  • 投稿者 mh
  • 5月 8, 2025
  • 27 views

Kubernetes Learning 第4章:Kubernetesを触ってみよう(最小構成で試す)

  • 投稿者 mh
  • 5月 8, 2025
  • 27 views

Android application development 第7章:ViewとViewGroup、Layoutの基本的な考え方

  • 投稿者 mh
  • 5月 7, 2025
  • 28 views

Kubernetes Learning 第3章:Dockerとの関係

  • 投稿者 mh
  • 5月 7, 2025
  • 24 views