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 第40章:Kubernetesのアップグレードとバージョン管理 ~安全にバージョンを上げるための基本知識~

Kubernetes Learning 第39章:CRD(Custom Resource Definition)とは?~Kubernetesに“自分専用のリソース”を追加する仕組み~

You Missed

Kubernetes Learning 第40章:Kubernetesのアップグレードとバージョン管理 ~安全にバージョンを上げるための基本知識~

  • 投稿者 mh
  • 6月 24, 2025
  • 94 views

Google Cloud Platform エンジニア向け教科書:実践から認定まで : 第13章:ストレージとデータベースの基礎 : オブジェクトストレージ: Cloud Storage(バケット、オブジェクト、ストレージクラス)- あなたの「データ置き場」

  • 投稿者 mh
  • 6月 23, 2025
  • 106 views

Kubernetes Learning 第39章:CRD(Custom Resource Definition)とは?~Kubernetesに“自分専用のリソース”を追加する仕組み~

  • 投稿者 mh
  • 6月 21, 2025
  • 106 views

Google Cloud Platform エンジニア向け教科書:実践から認定まで : 第12章:Cloud CDN(Content Delivery Network):あなたのWebサイトを「世界中のユーザーに超高速で届ける宅配便ネットワーク」

  • 投稿者 mh
  • 6月 20, 2025
  • 124 views

Kubernetes Learning 第38章:Operatorとは? ~Kubernetesに「運用の自動化ロボット」を組み込む仕組み~

  • 投稿者 mh
  • 6月 19, 2025
  • 118 views

Google Cloud Platform エンジニア向け教科書:実践から認定まで : 第11章:Cloud Load Balancing:あなたのGCPリソースを「賢く振り分ける交通整理の達人」

  • 投稿者 mh
  • 6月 18, 2025
  • 128 views