lvncerpedia

K8S VS Docker Compose

Kubernetes(k8s)と docker-compose は、どちらも「複数のコンテナをまとめて動かすためのツール」ですが、スケール・目的・構造が大きく違います。

以下に、わかりやすく比較してみます。

1. 対象レベルの違い

項目docker-composeKubernetes
想定スケール小規模(ローカルや開発環境)大規模(本番環境含むクラスタ)
実行対象1 つのマシン上での複数コンテナ複数ノードに分散されたクラスタ

2. 構成ファイルの違い

docker-compose.yml はシンプルで学習しやすい。

Kubernetes は複数の YAML ファイル(Deployment, Service, ConfigMap など)を使うため、最初はやや複雑。

例(同じアプリの docker-compose):

version: "3"
services:
  web:
    build: .
    ports:
      - "5000:5000"

3. スケーラビリティ & 自動復旧

機能docker-composeKubernetes
スケーリング手動スケール(例:docker-compose up --scale web=3)自動スケーリングが可能(Horizontal Pod Autoscaler など)
自動復旧基本なし(コンテナ落ちたらそのまま)Pod が落ちたら自動で再起動・再スケジュールされる
ロードバランシング自前で設定内部で自動対応(Service がやってくれる)

4. 開発 or 運用向け

  • docker-compose:開発・テスト向け。手軽にコンテナを立ち上げて試すには便利。
  • Kubernetes:本番運用向け。大規模サービスの安定運用や自動化に強い。

どちらを使うべき?

  • 学習・開発中:まずは docker-compose を使って仕組みを理解。
  • 運用・本番環境 or k8s を学びたいなら:Kubernetes を使って構成の理解を深める。

要するに、

docker-compose は「ローカルの友達」 Kubernetes は「本番のプロフェッショナル」

みたいな関係です。 もし、「docker-compose で作ってたアプリを k8s に移行する演習」もやってみたければ、それ用にステップ解説するよ!