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 第26章:標準的なログ取得方法(kubectl logs)〜Podの中で何が起きているかをのぞいてみよう〜

Kubernetes Learning 第25章:Replica数と冗長性の設計 〜止まらないシステムのために〜

You Missed

Google Cloud Platform エンジニア向け教科書:実践から認定まで : はじめに

  • 投稿者 mh
  • 5月 30, 2025
  • 1 views

現場で使えるChrome DevTools実践ガイド 第6章:Sourcesパネルでのブレークポイントとステップ実行

  • 投稿者 mh
  • 5月 30, 2025
  • 11 views

Kubernetes Learning 第26章:標準的なログ取得方法(kubectl logs)〜Podの中で何が起きているかをのぞいてみよう〜

  • 投稿者 mh
  • 5月 30, 2025
  • 3 views

Android application development 第30章:Firebase Crashlytics でのクラッシュレポート

  • 投稿者 mh
  • 5月 30, 2025
  • 3 views

Kubernetes Learning 第25章:Replica数と冗長性の設計 〜止まらないシステムのために〜

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

Android application development 第29章:キーストアと署名

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