プロジェクトの管理
Composeプロジェクト全体のライフサイクルを管理するコマンド。
コンテナの起動・作成
コマンド | オプション | 説明 |
---|---|---|
|
(なし) | docker-compose.yml に基づき、サービスを構築(build)し、作成(create)、起動(start)します。フォアグラウンドで実行され、コンテナのログが出力されます。 |
|
-d –detach |
コンテナをバックグラウンド(デタッチモード)で起動します。ログは表示されません。 |
|
–build | コンテナを起動する前に、イメージを強制的にビルドします。Dockerfileに変更があった場合などに使用します。 |
|
–force-recreate | 設定が変更されていなくても、コンテナを強制的に再作成します。ボリュームは影響を受けません。 |
|
–no-recreate | コンテナが既に存在する場合、再作成しません。--force-recreate とは逆の動作です。 |
|
–no-build | イメージが存在しない場合でも、イメージのビルドを行いません。 |
|
–scale | 指定したサービスのコンテナ数を <num> にスケーリングします。例: --scale web=3 で web サービスを3つ起動します。 |
|
(サービス名指定) | 指定したサービスとその依存関係のみを起動します。 |
|
–profile | 指定したプロファイルに属するサービスのみを起動します。docker-compose.yml 内で `profiles` 属性を使って定義します。 |
|
–wait | サービスが “healthy” または “running” 状態になるまで待機します。(Compose v2.1+) |
コンテナの停止・削除
コマンド | オプション | 説明 |
---|---|---|
|
(なし) | 実行中のサービスコンテナを停止します。コンテナ自体は削除されません。 |
|
(サービス名指定) | 指定したサービスのみを停止します。 |
|
(なし) | サービスのコンテナを停止し、削除します。デフォルトで作成されたネットワークも削除されます。ボリュームは削除されません。 |
|
-v –volumes |
コンテナとネットワークに加えて、docker-compose.yml の volumes セクションで定義された名前付きボリュームも削除します。注意して使用してください ⚠️。 |
|
–rmi | イメージを削除します。<type> には all (全イメージ) または local (カスタムタグがないイメージのみ) を指定します。 |
|
(なし) | 停止しているサービスコンテナを削除します。up で作成されたが、現在停止しているコンテナが対象です。 |
|
-f –force |
確認プロンプトを表示せずに、停止しているコンテナを強制的に削除します。 |
|
-s –stop |
削除する前に、実行中のコンテナを停止します。 |
|
-v | コンテナに紐付けられた匿名ボリュームを削除します。名前付きボリュームは削除されません。 |
|
(サービス名指定) | 指定したサービスの停止しているコンテナのみを削除します。 |
コンテナの再起動
コマンド | オプション | 説明 |
---|---|---|
|
(なし) | プロジェクト内の全てのサービスコンテナを再起動します。 |
|
(サービス名指定) | 指定したサービスコンテナのみを再起動します。 |
|
-t –timeout |
コンテナの停止を待つタイムアウト時間を秒単位で指定します(デフォルトは10秒)。 |
状態確認
コマンド | オプション | 説明 |
---|---|---|
|
(なし) | プロジェクト内の実行中のコンテナの状態(コンテナID、コマンド、状態、ポートなど)を表示します。 |
|
-a –all |
実行中のコンテナだけでなく、停止しているコンテナも含めて表示します。 |
|
-q –quiet |
コンテナIDのみを表示します。他のコマンドと組み合わせる際に便利です。 |
|
–services | サービス名のみを表示します。 |
|
–filter | 指定した条件でコンテナをフィルタリングします。例: --filter status=running |
|
(なし) | 実行中の各サービスコンテナで実行されているプロセスを表示します (Linuxの `top` コマンドのような形式)。 |
|
(サービス名指定) | 指定したサービスコンテナのプロセスのみを表示します。 |
コンテナ/サービスの操作
個別のコンテナやサービスに対する操作コマンド。
ログ表示
コマンド | オプション | 説明 |
---|---|---|
|
(なし) | 全てのサービスのコンテナログを表示します。 |
|
-f –follow |
ログの出力を継続的に監視し、新しいログが表示されるたびに追記します (ストリーミング)。Ctrl+C で停止します。 |
|
–tail | 各コンテナの最後の <N> 行のログを表示します。--tail="all" ですべてのログを表示します。 |
|
-t –timestamps |
各ログ行の先頭にタイムスタンプを表示します。 |
|
–no-color | ログの色分け表示を無効にします。 |
|
(サービス名指定) | 指定したサービスのコンテナログのみを表示します。 |
|
–since | 指定したタイムスタンプ以降のログを表示します。例: --since 2024-01-01T10:00:00 や --since 1h 。 |
|
–until | 指定したタイムスタンプ以前のログを表示します。 |
コマンド実行
コマンド | オプション | 説明 |
---|---|---|
|
(なし) | 実行中の指定されたサービスコンテナ内で <command> を実行します。例えば、docker-compose exec web ls /app のように使います。 |
|
-i -t | インタラクティブな TTY (端末) を割り当ててコマンドを実行します。主にシェル (bash , sh など) を起動してコンテナ内部を操作する際に使用します。例: docker-compose exec -it db bash 。 |
|
-d –detach |
コマンドをバックグラウンドで実行します。 |
|
-u –user |
指定したユーザーでコマンドを実行します。例: -u node 。 |
|
-e | コマンド実行時に環境変数を設定します。 |
|
–rm | 指定したサービスのために新しいコンテナを作成して <command> を実行します。コマンド終了後にコンテナは自動的に削除されます。一時的なタスク実行(マイグレーション、テストなど)に便利です。exec は既存のコンテナで実行する点が異なります。 |
|
-p –publish |
run で起動する一時コンテナのポートをホストに公開します。 |
|
-v –volume |
run で起動する一時コンテナにボリュームをマウントします。 |
|
–entrypoint | docker-compose.yml で定義されたサービスの entrypoint を上書きします。 |
|
–service-ports | docker-compose.yml で定義されたサービスのポートマッピングを有効にして run を実行します。 |
イメージ操作
コマンド | オプション | 説明 |
---|---|---|
|
(なし) | docker-compose.yml 内の build ディレクティブを持つサービスのイメージをビルドします。 |
|
–no-cache | ビルドキャッシュを使用せずにイメージをビルドします。 |
|
–pull | 常にベースイメージの最新版を取得しようと試みます。 |
|
–progress | ビルドの進捗表示形式を指定します。auto , plain , tty があります。 |
|
–build-arg | ビルド時の引数 (ARG) を指定します。 |
|
(サービス名指定) | 指定したサービスのイメージのみをビルドします。 |
|
(なし) | サービスのイメージをレジストリ(Docker Hubなど)からプル(ダウンロード)します。image ディレクティブで指定されたイメージが対象です。 |
|
–ignore-pull-failures | 一部のイメージのプルに失敗しても、処理を続行します。 |
|
-q –quiet |
進捗情報を表示せず、プル結果のみを表示します。 |
|
(サービス名指定) | 指定したサービスのイメージのみをプルします。 |
|
(なし) | サービスのイメージをレジストリにプッシュします。適切なリポジトリ名がイメージに付与されている必要があります。 |
|
–ignore-push-failures | 一部のイメージのプッシュに失敗しても、処理を続行します。 |
|
(なし) | Composeプロジェクトで使用されているイメージ(ビルドされたもの、プルされたもの)の一覧を表示します。 |
|
-q –quiet |
イメージIDのみを表示します。 |
|
(サービス名指定) | 指定したサービスが使用するイメージのみを表示します。 |
設定と構成
docker-compose.yml
ファイルの検証や内容表示に関するコマンド。
コマンド | オプション | 説明 |
---|---|---|
|
(なし) | Composeファイル(デフォルト: docker-compose.yml )を検証し、マージされた最終的な設定内容を標準出力に表示します。環境変数や複数のComposeファイルが適用された結果を確認できます。 |
|
-q –quiet |
設定内容に構文エラーがないかだけをチェックし、何も出力しません。エラーがある場合はエラーメッセージを表示し、非ゼロの終了コードを返します。CI/CDでのチェックに便利です ✅。 |
|
–services | 設定ファイルで定義されているサービスの名前一覧を表示します。 |
|
–volumes | 設定ファイルで定義されているトップレベルのボリューム名一覧を表示します。 |
|
–networks | 設定ファイルで定義されているトップレベルのネットワーク名一覧を表示します。 |
|
-f –file |
使用するComposeファイルを指定します。複数指定した場合、後のファイルの内容が前のファイルの内容を上書き・マージします。このオプションは up , down など他の多くのコマンドでも使用可能です。 |
|
–env-file | 環境変数を読み込むファイルを指定します。デフォルトではComposeファイルと同じディレクトリにある .env ファイルが読み込まれます。このオプションは他のコマンドでも使用可能です。 |
|
–profiles | 設定ファイルで定義されているプロファイル名の一覧を表示します。 |
|
–hash | 指定したサービスの構成ハッシュを表示します。* ですべてのサービスのハッシュを表示します。構成が変更されたかどうかをプログラムで確認するのに役立ちます。 |
|
–resolve-image-digests | イメージ名をダイジェスト(一意な識別子)に解決して設定を表示します。 |
💡 ヒント: .env
ファイルや環境変数は、docker-compose.yml
内で ${VARIABLE_NAME}
の形式で参照できます。
ネットワークとボリューム
Composeが管理するネットワークやボリュームに関するコマンド (Docker本体のコマンドと連携)。
コマンド | オプション | 説明 |
---|---|---|
|
(なし) | Dockerが管理する全てのネットワークを一覧表示します。Composeが作成したネットワークは通常 <project_name>_<network_name> という名前になります。 (これは純粋なDockerコマンドですが、Composeと関連が深いため記載) |
|
(ネットワーク名指定) | 指定したネットワークの詳細情報(接続されているコンテナなど)を表示します。 (Dockerコマンド) |
|
(ネットワーク名指定) | 指定したネットワークを削除します。Compose管理下のネットワークは通常 docker-compose down で削除されますが、孤立した場合などに手動で削除できます。 (Dockerコマンド) |
|
(なし) | Dockerが管理する全てのボリュームを一覧表示します。Composeが作成した名前付きボリュームは通常 <project_name>_<volume_name> という名前になります。 (Dockerコマンド) |
|
(ボリューム名指定) | 指定したボリュームの詳細情報(マウントポイントなど)を表示します。 (Dockerコマンド) |
|
(ボリューム名指定) | 指定したボリュームを削除します。使用中のボリュームは削除できません。Compose管理下のボリュームは通常 docker-compose down -v で削除されます。 (Dockerコマンド) |
|
(なし) | どのコンテナからも使用されていないローカルボリュームを一括で削除します。注意して使用してください ⚠️。 (Dockerコマンド) |
📝 注記: Docker Compose v2 以降では、docker compose network ls
や docker compose volume ls
のように、docker compose
コマンドのサブコマンドとしてネットワークやボリュームを操作する機能が統合されつつありますが、現状ではまだ docker network
や docker volume
コマンドを使用するのが一般的です。
その他 🛠️
バージョン情報表示やイベント監視などの補助的なコマンド。
コマンド | オプション | 説明 |
---|---|---|
|
(なし) | インストールされている Docker Compose のバージョン情報を表示します。Docker Engineのバージョンなども併せて表示されることがあります。 |
|
–version | バージョン情報のみを簡潔に表示します。 |
|
(なし) | Dockerデーモンからリアルタイムでイベント(コンテナの start, stop, create, destroy など)ストリームを受信し、表示します。Composeプロジェクトに関連するイベントが流れます。 |
|
–json | イベントをJSON形式で出力します。スクリプトなどで処理する場合に便利です。 |
|
(なし) | 指定したサービスのコンテナポート (<private_port>) に対応するホスト側の公開ポートとIPアドレスを表示します。 |
|
–protocol | ポートのプロトコル (tcp または udp) を指定します。デフォルトは tcp です。 |
|
–index | サービスが複数コンテナで実行されている場合(--scale など)、コンテナのインデックス番号 (<num>) を指定します。デフォルトは 1 です。 |
|
(サービス名指定) | 指定したサービスのコンテナに SIGKILL シグナルを送信して強制停止します。通常は stop や down を使うべきですが、応答しないコンテナを強制終了させる場合に使用します。 |
|
-s | 送信するシグナルを指定します。デフォルトは SIGKILL です。例: -s SIGTERM 。 |
|
(サービス名指定) | 指定したサービスのコンテナ内の全てのプロセスを一時停止 (Pause) します。 |
|
(サービス名指定) | 一時停止 (Pause) されている指定サービスのコンテナ内の全てのプロセスを再開 (Unpause) します。 |
コメント