🐕
Docker Compose でよく使われるコマンド
Docker Compose 基本コマンド一覧
Docker Compose v2以降では、コマンドは**docker compose**(間にハイフンなし)を使用します。
起動・停止・削除
docker compose up
- 用途: サービスの一括起動(コンテナ作成・実行)
-
説明:
docker-compose.ymlに基づいて、すべてのサービスを作成、起動します。-dオプションでバックグラウンド実行、--buildで起動前にイメージを再ビルドします。 -
例 (バックグラウンドとビルド):
docker compose up -d --build
docker compose down
- 用途: サービスの一括停止とリソース削除
-
説明:
upで起動したコンテナ、ネットワークを停止し削除します。-vオプションで匿名ボリューム(名前のないボリューム)も削除します。 -
例 (ボリュームも削除):
docker compose down -v
docker compose start <サービス名>
- 用途: 停止中のサービスの開始
- 説明: 既に作成され、停止しているコンテナを再開します。
-
例:
docker compose start webapp
docker compose stop <サービス名>
- 用途: 実行中のサービスの停止
- 説明: 実行中のサービス(コンテナ)を優雅に停止します。コンテナは削除されません。
-
例:
docker compose stop database
docker compose restart <サービス名>
- 用途: サービスを再起動
- 説明: 実行中のサービスを停止し、再起動します。
-
例:
docker compose restart webapp
状態の確認とログ
docker compose ps
- 用途: サービスの状態一覧表示
-
説明:
docker-compose.ymlで定義されたサービス(コンテナ)の現在の状態、ポートマッピングなどを一覧表示します。 -
例:
docker compose ps
docker compose logs <サービス名>
- 用途: サービスからのログ出力
- 説明: サービス(コンテナ)の標準出力/標準エラー出力に書き込まれたログを表示します。
-
例 (リアルタイム追尾):
docker compose logs -f
docker compose top <サービス名>
- 用途: サービス内のプロセス表示とリソース監視
- 説明: 実行中のコンテナ内で動作しているプロセス(PID、CPU/メモリ使用量など)をリアルタイムで表示します。
-
例:
docker compose top webapp
イメージとビルド
docker compose pull
- 用途: サービスに使用するイメージのダウンロード
-
説明:
docker-compose.ymlに定義されているすべてのサービスで使用するイメージをリモートリポジトリからダウンロードします。 -
例:
docker compose pull
docker compose build <サービス名>
- 用途: サービスに使用するイメージのビルド
-
説明:
docker-compose.yml内でbuild指定されているサービスについて、Dockerfileからイメージを作成または再ビルドします。 -
例 (キャッシュを無視):
docker compose build --no-cache webapp
ユーティリティと管理
docker compose exec <サービス名> <コマンド>
- 用途: 実行中のサービス内でコマンド実行
- 説明: 既に起動しているコンテナ内に接続し、指定したコマンドを実行します。コンテナのデバッグや管理によく使われます。
-
例 (シェル接続):
docker compose exec webapp /bin/bash
docker compose run <サービス名> <コマンド>
- 用途: サービスの一時的な実行(使い捨て)
- 説明: 既存の設定(環境変数、ボリュームなど)を使用して新しい一時的なコンテナを作成し、指定したコマンドを実行した後、コンテナを終了します。永続的な起動ではなく、マイグレーション実行などに使います。
-
例 (DBマイグレーション):
docker compose run --rm webapp python manage.py migrate
docker compose config
- 用途: 設定ファイルのマージと検証
-
説明:
docker-compose.ymlと、環境変数や他の設定ファイルがどのようにマージされ、最終的にDocker Engineに渡されるかを表示します。設定のデバッグに便利です。 -
例 (検証のみ):
docker compose config
Discussion