Docker Compose 基本¶
Compose は、複数コンテナをまとめてローカル実行するための定義ファイル。
アプリ、DB、Redis のような複数サービスを一緒に立ち上げたいときに便利。
どういう場面で使うか¶
- Web アプリと DB をまとめてローカル起動したいとき
- チーム全員で同じ開発環境を揃えたいとき
- 起動コマンドを毎回手で並べたくないとき
- 検証用の複数コンテナ環境をすぐ作りたいとき
services:
app:
build: .
ports:
- "8000:8000"
environment:
- LOG_LEVEL=info
depends_on:
- db
db:
image: postgres:16
volumes:
- pg:/var/lib/postgresql/data
volumes:
pg: {}
まず押さえたいこと¶
- 起動コマンドを毎回長く書かなくてよい
- 複数サービスの依存関係をまとめて管理できる
- チームでローカル開発環境を揃えやすい
- 基本的には本番オーケストレーションというより、開発・検証用途でよく使う
よく見る項目¶
services: 起動するコンテナ群build: Dockerfile からビルドimage: 既存イメージを利用ports: ホストとコンテナのポート対応environment: 環境変数volumes: 永続データやソースマウントdepends_on: 起動順の補助
よく使うコマンド¶
docker compose up
docker compose up -d
docker compose down
docker compose logs -f
docker compose ps
最初によく使う流れ¶
docker compose up -dでまとめて起動docker compose psで状態確認docker compose logs -fでログ確認docker compose downで終了
メモ¶
depends_onは起動順の補助であって、アプリの準備完了までは保証しない- 開発環境では bind mount、本番寄りではイメージ実行、で使い分けることが多い
- 本番運用の基盤というより、まずはローカル開発・検証用途として理解する
- まずは 2〜3 サービス構成を自分で起動できれば十分