docker compose は、compose.yaml(または docker-compose.yml)で定義した複数コンテナの起動・停止・ログ・スケールなど、スタックのライフサイクルをまとめて操作する CLI です(Compose v2)。Compose は単一の YAML でサービス・ネットワーク・ボリュームを定義します。 (Docker Documentation)
※ v2 では docker compose(スペースあり)を推奨。旧 docker-compose(Python製 v1)はレガシーです。 (Docker Documentation, Stack Overflow)
構文(Syntax)
docker compose [OPTIONS] COMMAND [ARGS...]
# 代表例
docker compose up [OPTIONS] [SERVICE...]
docker compose down [OPTIONS]
docker compose logs [OPTIONS] [SERVICE...]
docker compose exec [OPTIONS] SERVICE COMMAND [ARGS...]
docker compose run [OPTIONS] SERVICE [COMMAND] [ARGS...]
主な共通オプション:
-f FILE(複数指定可): Composeファイルを明示(デフォルトはcompose.yaml等)-p NAME: プロジェクト名(オーケストレーションの名前空間)--env-file FILE:.envの代替・追加読み込み--profile NAME: プロファイルを有効化(複数可)
これらはほぼ全サブコマンドに共通です。 (Docker Documentation)
主なオプション一覧
| オプション | 説明 | 使用例 |
|---|---|---|
-f FILE | 使用する Compose ファイルを指定(複数可) | docker compose -f compose.yaml -f compose.prod.yaml up -d (Docker Documentation) |
-p NAME | プロジェクト名(COMPOSE_PROJECT_NAME相当) | docker compose -p myapp up -d (Docker Documentation) |
--env-file FILE | 追加の環境ファイルを読み込み | docker compose --env-file .env.prod up -d (Docker Documentation) |
--profile NAME | 指定プロファイルのみ有効化 | docker compose --profile worker up -d (Docker Documentation) |
up -d | デタッチ起動 | docker compose up -d (Docker Documentation) |
up --build | 起動前にビルド | docker compose up -d --build (Docker Documentation) |
up --remove-orphans | ファイルに無い孤児コンテナを削除 | docker compose up --remove-orphans (Docker Documentation) |
up --scale SVC=N | サービスのインスタンス数を指定 | docker compose up -d --scale web=3 (Docker Documentation) |
down -v | 停止+ネットワーク解放、ボリューム削除 | docker compose down -v (Docker Documentation) |
down --rmi local all | 画像削除(タグなし/全て) | docker down --rmi local all |
logs -f -t | ログ追従(タイムスタンプ付き) | docker compose logs -f -t web (Docker Documentation) |
exec -T | TTYなしでコマンド実行 | docker compose exec -T app pytest (Docker Documentation) |
run --rm | 一回限りのタスク実行 | docker compose run --rm worker rake db:migrate (Docker Documentation) |
config --services | サービス名を出力 | docker compose config --services (Docker Documentation) |
config --variables | 参照変数を一覧(v2系で追加) | docker compose config --variables (Docker Documentation) |
実行例
基本:スタックを起動し、ログを追う
説明: compose.yaml から起動し、ログを追従します。
コマンド:
docker compose up -d
docker compose logs -f
(-d はデタッチ、logs -f は追従) (Docker Documentation)
複数ファイルとプロジェクト名の指定
説明: 追加の上書きファイルを適用し、プロジェクト名を固定します。
コマンド:
docker compose -p myapp \
-f compose.yaml -f compose.prod.yaml \
--env-file .env.prod up -d
スケールアウトと設定検証
説明: Web を 3 副本で起動し、設定を検証します。
コマンド:
docker compose up -d --scale web=3
docker compose config --services
実行中コンテナへ入り、メンテコマンドを実行
説明: アプリサービスに入り、マイグレーション等を実行します(TTY不要なら -T)。
コマンド:
docker compose exec app sh -lc 'printenv | head'
docker compose exec -T app ./manage.sh migrate
片付け:関連リソースをまとめて削除
説明: コンテナ・ネットワーク・(必要に応じて)ボリュームとイメージを削除します。
コマンド:
docker compose down -v --rmi local
エラー例:Compose ファイルが見つからない
説明: 対象ディレクトリに compose.yaml 等が無いと失敗します。
コマンド:
mkdir /tmp/empty && cd /tmp/empty
docker compose up
出力例(概略):
can't find a suitable configuration file in this directory or any parent
(-f で明示するか、ファイルを配置してください。) (Docker Documentation)
関連コマンド
docker: 単体コンテナ操作の基本 CLI。Compose もこれを基盤に動きます。 (Docker Documentation)podman-compose: Podman 向けの互換ツール。kompose: Kubernetes マニフェストへの変換ツール。docker context: リモート/別環境のデーモンを切替。Compose からも利用可能。 (Docker Documentation)
備考
- ファイル仕様: 旧 v2/v3 フォーマットは Compose Specification に統合。
compose.yamlが推奨名です。 (Docker Documentation) - v1→v2 移行: 旧
docker-composeからの移行ガイド(CLI 名称・挙動差・環境変数の扱いなど)を参照。 (Docker Documentation) - .env と環境変数:
.envは Compose 実行時に自動読込。--env-fileで複数・差し替えが可能。env_file:をサービス側で optional にもできる(2.24.0+)。 (Docker Documentation) - 孤児コンテナ: プロジェクト名やファイル差替えで「orphan」警告が出ることがある。
--remove-orphansを活用。 (Docker Documentation, Stack Overflow) - 新機能の追加: v2 系は継続的に機能追加(例:
config --variables,up --watchなど)。最新のリリースノートを確認してください。 (Docker Documentation) - 権限: Docker デーモンにアクセスできるユーザー(root か
dockerグループ)で実行します。 - インストール: 通常は Docker CLI のプラグインとして同梱。サーバ向けにスタンドアロン版も提供されています。 (Docker Documentation)
参考
- Compose CLI リファレンス(総合):
docker composeコマンド群と共通オプション。 (Docker Documentation) - Compose file リファレンス(仕様): サービス/ボリューム/ネットワーク/プロファイル等。 (Docker Documentation)
docker compose up/down/logs詳細: 起動・停止・ログ取得時の各種フラグ。 (Docker Documentation)- v1→v2 移行ガイド/差分: (Docker Documentation)
- リリースノート(新機能・変更点): (Docker Documentation)

コメント