第06回: Docker Composeの基本 — 複数サービスを1コマンドで起動する

章: 第2章: Docker Compose実践

毎回 docker run を3回叩くのは終わりにしよう

アプリ・DB・キャッシュを別々に docker run で起動し、毎回コマンドを打つのは非効率です。コマンドが長くなるほど間違いも増えます。

Docker Composeを使えば、複数サービスの定義を1つのYAMLファイルにまとめ、docker compose up 1コマンドで全サービスを起動できます。停止も docker compose down の1コマンドです。

Composeを使うと何が変わるか

Composeは「サービスの構成をコードで管理する」ツールです。YAMLに定義を書くことで次が実現します。

  • チーム全員が同じ構成で起動できる(環境差異の排除)
  • ビルド・起動・停止・ログ確認がすべて docker compose サブコマンドで完結
  • サービス間の依存関係(起動順)も定義できる

よく使うComposeコマンドの比較

コマンド 動作
docker compose up -d バックグラウンドで全サービス起動
docker compose down 全サービス停止・コンテナ削除
docker compose down -v ボリュームも合わせて削除
docker compose logs -f 全サービスのログをリアルタイム表示
docker compose ps サービスの状態確認
docker compose exec app bash コンテナ内でシェル起動

チェックポイント: 開発中は docker compose up -d で起動し、docker compose logs -f でログを確認する流れが基本です。down -v はボリュームも消えるので本番環境では慎重に使いましょう。

最小構成のサンプル


services:
  app:
    build: .
    ports:
      - "8080:8080"
  db:
    image: mysql:8.4
    environment:
      MYSQL_DATABASE: blog
      MYSQL_ROOT_PASSWORD: secret

appdb の2サービス構成です。まずこの最小構成を動かして、起動・停止・ログ確認を一通り試してみましょう。

まとめ & 次のステップ

  • Composeは複数サービスを1つのYAMLで管理し、1コマンドで起動・停止できる
  • まず app + db の2サービス構成から始めるのがコツ
  • docker compose logs -f でトラブル時のログ確認を習慣にする
  • down -v はボリュームも削除されるため意図的に使う

次回は「環境変数と.env管理」を学びます。パスワードや設定値をYAMLに直書きしない、安全な環境変数管理の方法を整理します。

Related Articles