docker compose

docker compose は、docker-compose.yml に定義された複数のDockerコンテナを まとめて管理するためのコマンドである。このコマンドを用いることで、コンテナの起動・停止・再作成・削除などを一括して実行でき、複数コンテナからなるアプリケーション環境を簡単かつ一貫性をもって運用できる。

  • 初回起動    : config → build → up → ps → logs
  • 開発中の更新  : build → up --force-recreate
  • デバッグ    : logs → exec → restart
  • クリーンアップ : down -v --rmi all

docker compose コマンド

docker compose up コマンド
 【処理】 サービスを作成・起動する
 【書式】 docker compose up [オプション] [サービス名]

オプション内容
up -d / --detachバックグラウンドで実行
up --build起動前に強制的にビルド
up --force-recreateコンテナを強制的に再作成
up --no-recreate既存コンテナを再利用
up --scale
【例】--scale web=3
サービスのインスタンス数を指定
up -V / --renew-anon-volumes匿名ボリュームを再作成

docker compose down コマンド
 【処理】 サービスを停止・削除する
 【書式】 docker compose down [オプション]

オプション内容
down -v / --volumesボリュームも削除
down --rmi
【例】--rmi all
【例】--rmi local
イメージも削除
down --remove-orphansファイルに定義されていないコンテナを削除

docker compose ps コマンド
 【処理】 サービスの状態を確認する
 【書式】 docker compose ps [オプション] [サービス名]

オプション内容
ps -a, --all停止中のコンテナも表示
ps -q, --quietIDのみ表示
ps --servicesサービス名のみ表示
ps --format
【例】--format json
出力フォーマット指定

docker compose logs コマンド
 【処理】 ログを表示する
 【書式】 docker compose logs [オプション] [サービス名]

オプション内容
logs -f / --followリアルタイム表示
logs --tail
【例】--tail 100
最後のN行を表示
logs -t / --timestampsタイムスタンプ表示
logs --since
【例】--since 1h
指定時刻以降のログ
logs --until
【例】--until 5m
指定時刻までのログ

docker compose exec コマンド
 【処理】 実行中のコンテナでコマンドを実行する
 【書式】 docker compose exec [オプション] サービス名 コマンド

オプション内容
exec -u root サービス名 bashrootユーザーでシェル起動
exec サービス名 mysql -u root -pMySQL クライアント起動
exec サービス名 psql -U postgresPostgreSQL クライアント起動
exec サービス名 redis-cliRedis-cli 起動
exec サービス名 cat FILEファイル確認
exec サービス名 tail -f LOGログ確認
exec -d / --detach
【例】-d サービス名 touch /tmp/file
バックグラウンドで実行
exec -u / --user
【例】-u root サービス名 bash
実行ユーザー指定
exec -w / --workdir
【例】-w /app サービス名 ls
作業ディレクトリ指定
exec -e / --env
【例】-e DEBUG=trueサービス名 npm test
環境変数設定

docker compose start コマンド
 【処理】 停止中のサービスを起動する
 【書式】 docker compose start [サービス名]

docker compose stop コマンド
 【処理】 サービスを停止する
 【書式】 docker compose stop [オプション] [サービス名]

オプション内容
stop -t / --timeout
【例】-t 30
停止までの待機時間(秒)

docker compose restart コマンド
 【処理】 サービスを再起動する
 【書式】 docker compose restart [オプション] [サービス名]

オプション内容
restart -t / --timeout
【例】-t 30
停止までの待機時間(秒)

docker compose build コマンド
 【処理】 イメージをビルドする
 【書式】 docker compose build [オプション] [サービス名]

オプション内容
build --no-cacheキャッシュを使わずにビルド
build --pull常に最新のベースイメージをプル
build --build-arg
【例】--build-arg NODE_ENV=production
ビルド引数を指定
build --parallel並列ビルド

docker compose pull コマンド
 【処理】 イメージをプルする
 【書式】 docker compose pull [オプション] [サービス名]

オプション内容
pull --ignore-pull-failuresプル失敗を無視
pull -q / --quiet進捗を表示しない

docker compose configコマンド
 【処理】 設定ファイルを検証・表示する
 【書式】 docker compose config [オプション]

オプション内容
config --servicesサービス名のみ表示
config --volumesボリューム名のみ表示
config -q / --quiet検証のみ(出力なし)

docker compose rm コマンド
 【処理】 停止中のコンテナを削除する
 【書式】 docker compose rm [オプション] [サービス名]

オプション内容
rm -f / --force確認なしで削除
rm -s / --stop実行中でも停止して削除
rm -v / --volumes匿名ボリュームも削除