【Docker基礎】Docker Composeの使い方

 これまでは単一コンテナを中心に学んできましたが、複数のコンテナを連携させたシステム(WordPress + MySQL、あるいはフロントエンド + バックエンドなど)を扱う際に 「Docker Compose」 は非常に便利です。
 Docker Compose を使うと、コンテナの定義を記述した YAML ファイル(docker-compose.yml) に従って、一度にコンテナを起動・停止・破棄できます。ここでは、その基本的な使い方をざっくりと説明し、従来の docker-compose コマンドから docker compose への移行についても触れていきます。

1.Docker Compose はインストール不要

 以前は 「docker-compose」 という別コマンドをインストールする必要がありましたが、Docker Compose V2 の登場により、docker コマンドに統合 されました。

  • デスクトップ版 Docker を使っているなら、すでに Compose が含まれているので追加手順は不要
  • CLI から使う場合 は、かつての docker-compose から docker compose へ移行中
    ・コマンドが 「docker-compose」 → 「docker compose」 とハイフンがスペースに変わっただけで実行内容は大きく変わっていません

2.Docker Compose は「docker-compose.yml」で設定を書く

  1. Dockerfile のときと同様、ホスト側のフォルダ に YAML ファイルを作成
  2. ファイル名 はデフォルトで docker-compose.yml
    ・別名にしたい場合は -f オプションで指定可能
  3. ひとつのフォルダにひとつの docker-compose.yml が基本ルール
    ・そのフォルダには、コンテナで使うファイル(HTML や画像など)も置いておくことが多い

3.「サービス」と「コンテナ」

Docker Compose の世界では、「サービス (service)」 という言葉が登場します。

  • ドキュメント内では「コンテナ」と「サービス」が混在しますが、サービス = コンテナの塊 と考えて大きな問題はありません
  • 例えば wordpress サービスや db サービスなどと書かれていますが、最終的にはコンテナとして立ち上がる ものです

4.具体的な操作

  • docker compose up
    ・YAML ファイル(docker-compose.yml)を読み込み、記述されたサービス(コンテナ群)を一括で起動
    ・ネットワークやボリュームの生成も自動的に行う。
  • docker compose down
    ・起動中のコンテナとネットワークを停止・削除
    ・ボリュームやイメージは削除しない(オプションで指定可能)
  • docker compose stop
    ・コンテナを停止するが削除はしない

5.なぜ Compose が便利?

  1. コマンドの打ち間違いを減らす
    WordPress + MySQL のように多数の docker run を叩く必要がない。
  2. 一元管理
    YAML ファイルをバージョン管理すれば、チームメンバーも同じ設定を再現可能
  3. 大規模システムへの入り口
    将来的に Kubernetes など大規模オーケストレーションに移行しやすい。

まとめ

  • Docker Compose は複数コンテナを一度に扱うためのツールで、YAML ファイル(docker-compose.yml)に設定を記述し、コマンド一発で起動・停止ができる
  • インストール不要:Docker Desktop や Docker Compose V2 のおかげで、docker compose コマンドが標準化
  • 「サービス」=「コンテナ」 と考えてほぼ問題なし。
  • up / down / stop で複数コンテナをまとめて操作可能

 次のコンテンツでは、Docker Compose ファイルの書き方についてさらに解説し、実際にコンテナを起動してみる流れを学んでいきます。