docker-composeコマンド チートシート

cheatsheet

プロジェクトの管理

Composeプロジェクト全体のライフサイクルを管理するコマンド。

コンテナの起動・作成

コマンド オプション 説明
docker-compose up
(なし) docker-compose.yml に基づき、サービスを構築(build)し、作成(create)、起動(start)します。フォアグラウンドで実行され、コンテナのログが出力されます。
docker-compose up -d
-d
–detach
コンテナをバックグラウンド(デタッチモード)で起動します。ログは表示されません。
docker-compose up --build
–build コンテナを起動する前に、イメージを強制的にビルドします。Dockerfileに変更があった場合などに使用します。
docker-compose up --force-recreate
–force-recreate 設定が変更されていなくても、コンテナを強制的に再作成します。ボリュームは影響を受けません。
docker-compose up --no-recreate
–no-recreate コンテナが既に存在する場合、再作成しません。--force-recreate とは逆の動作です。
docker-compose up --no-build
–no-build イメージが存在しない場合でも、イメージのビルドを行いません。
docker-compose up --scale <service_name>=<num>
–scale 指定したサービスのコンテナ数を <num> にスケーリングします。例: --scale web=3 で web サービスを3つ起動します。
docker-compose up <service_name...>
(サービス名指定) 指定したサービスとその依存関係のみを起動します。
docker-compose up --profile <profile_name>
–profile 指定したプロファイルに属するサービスのみを起動します。docker-compose.yml 内で `profiles` 属性を使って定義します。
docker-compose up --wait
–wait サービスが “healthy” または “running” 状態になるまで待機します。(Compose v2.1+)

コンテナの停止・削除

コマンド オプション 説明
docker-compose stop
(なし) 実行中のサービスコンテナを停止します。コンテナ自体は削除されません。
docker-compose stop <service_name...>
(サービス名指定) 指定したサービスのみを停止します。
docker-compose down
(なし) サービスのコンテナを停止し、削除します。デフォルトで作成されたネットワークも削除されます。ボリュームは削除されません。
docker-compose down -v
-v
–volumes
コンテナとネットワークに加えて、docker-compose.ymlvolumes セクションで定義された名前付きボリュームも削除します。注意して使用してください ⚠️。
docker-compose down --rmi <type>
–rmi イメージを削除します。<type> には all (全イメージ) または local (カスタムタグがないイメージのみ) を指定します。
docker-compose rm
(なし) 停止しているサービスコンテナを削除します。up で作成されたが、現在停止しているコンテナが対象です。
docker-compose rm -f
-f
–force
確認プロンプトを表示せずに、停止しているコンテナを強制的に削除します。
docker-compose rm -s
-s
–stop
削除する前に、実行中のコンテナを停止します。
docker-compose rm -v
-v コンテナに紐付けられた匿名ボリュームを削除します。名前付きボリュームは削除されません。
docker-compose rm <service_name...>
(サービス名指定) 指定したサービスの停止しているコンテナのみを削除します。

コンテナの再起動

コマンド オプション 説明
docker-compose restart
(なし) プロジェクト内の全てのサービスコンテナを再起動します。
docker-compose restart <service_name...>
(サービス名指定) 指定したサービスコンテナのみを再起動します。
docker-compose restart -t <seconds>
-t
–timeout
コンテナの停止を待つタイムアウト時間を秒単位で指定します(デフォルトは10秒)。

状態確認

コマンド オプション 説明
docker-compose ps
(なし) プロジェクト内の実行中のコンテナの状態(コンテナID、コマンド、状態、ポートなど)を表示します。
docker-compose ps -a
-a
–all
実行中のコンテナだけでなく、停止しているコンテナも含めて表示します。
docker-compose ps -q
-q
–quiet
コンテナIDのみを表示します。他のコマンドと組み合わせる際に便利です。
docker-compose ps --services
–services サービス名のみを表示します。
docker-compose ps --filter <key>=<value>
–filter 指定した条件でコンテナをフィルタリングします。例: --filter status=running
docker-compose top
(なし) 実行中の各サービスコンテナで実行されているプロセスを表示します (Linuxの `top` コマンドのような形式)。
docker-compose top <service_name...>
(サービス名指定) 指定したサービスコンテナのプロセスのみを表示します。

コンテナ/サービスの操作

個別のコンテナやサービスに対する操作コマンド。

ログ表示

コマンド オプション 説明
docker-compose logs
(なし) 全てのサービスのコンテナログを表示します。
docker-compose logs -f
-f
–follow
ログの出力を継続的に監視し、新しいログが表示されるたびに追記します (ストリーミング)。Ctrl+C で停止します。
docker-compose logs --tail=<N>
–tail 各コンテナの最後の <N> 行のログを表示します。--tail="all" ですべてのログを表示します。
docker-compose logs -t
-t
–timestamps
各ログ行の先頭にタイムスタンプを表示します。
docker-compose logs --no-color
–no-color ログの色分け表示を無効にします。
docker-compose logs <service_name...>
(サービス名指定) 指定したサービスのコンテナログのみを表示します。
docker-compose logs --since <timestamp>
–since 指定したタイムスタンプ以降のログを表示します。例: --since 2024-01-01T10:00:00--since 1h
docker-compose logs --until <timestamp>
–until 指定したタイムスタンプ以前のログを表示します。

コマンド実行

コマンド オプション 説明
docker-compose exec <service_name> <command>
(なし) 実行中の指定されたサービスコンテナ内で <command> を実行します。例えば、docker-compose exec web ls /app のように使います。
docker-compose exec -it <service_name> <shell>
-i -t インタラクティブな TTY (端末) を割り当ててコマンドを実行します。主にシェル (bash, sh など) を起動してコンテナ内部を操作する際に使用します。例: docker-compose exec -it db bash
docker-compose exec -d <service_name> <command>
-d
–detach
コマンドをバックグラウンドで実行します。
docker-compose exec -u <user> <service_name> <command>
-u
–user
指定したユーザーでコマンドを実行します。例: -u node
docker-compose exec -e <KEY>=<VALUE> <service_name> <command>
-e コマンド実行時に環境変数を設定します。
docker-compose run --rm <service_name> <command>
–rm 指定したサービスのために新しいコンテナを作成して <command> を実行します。コマンド終了後にコンテナは自動的に削除されます。一時的なタスク実行(マイグレーション、テストなど)に便利です。exec は既存のコンテナで実行する点が異なります。
docker-compose run -p <host_port>:<container_port> <service_name> <command>
-p
–publish
run で起動する一時コンテナのポートをホストに公開します。
docker-compose run -v <host_path>:<container_path> <service_name> <command>
-v
–volume
run で起動する一時コンテナにボリュームをマウントします。
docker-compose run --entrypoint <entrypoint_command> <service_name> <command>
–entrypoint docker-compose.yml で定義されたサービスの entrypoint を上書きします。
docker-compose run --service-ports <service_name> <command>
–service-ports docker-compose.yml で定義されたサービスのポートマッピングを有効にして run を実行します。

イメージ操作

コマンド オプション 説明
docker-compose build
(なし) docker-compose.yml 内の build ディレクティブを持つサービスのイメージをビルドします。
docker-compose build --no-cache
–no-cache ビルドキャッシュを使用せずにイメージをビルドします。
docker-compose build --pull
–pull 常にベースイメージの最新版を取得しようと試みます。
docker-compose build --progress <type>
–progress ビルドの進捗表示形式を指定します。auto, plain, tty があります。
docker-compose build --build-arg <key>=<value>
–build-arg ビルド時の引数 (ARG) を指定します。
docker-compose build <service_name...>
(サービス名指定) 指定したサービスのイメージのみをビルドします。
docker-compose pull
(なし) サービスのイメージをレジストリ(Docker Hubなど)からプル(ダウンロード)します。image ディレクティブで指定されたイメージが対象です。
docker-compose pull --ignore-pull-failures
–ignore-pull-failures 一部のイメージのプルに失敗しても、処理を続行します。
docker-compose pull -q
-q
–quiet
進捗情報を表示せず、プル結果のみを表示します。
docker-compose pull <service_name...>
(サービス名指定) 指定したサービスのイメージのみをプルします。
docker-compose push
(なし) サービスのイメージをレジストリにプッシュします。適切なリポジトリ名がイメージに付与されている必要があります。
docker-compose push --ignore-push-failures
–ignore-push-failures 一部のイメージのプッシュに失敗しても、処理を続行します。
docker-compose images
(なし) Composeプロジェクトで使用されているイメージ(ビルドされたもの、プルされたもの)の一覧を表示します。
docker-compose images -q
-q
–quiet
イメージIDのみを表示します。
docker-compose images <service_name...>
(サービス名指定) 指定したサービスが使用するイメージのみを表示します。

設定と構成

docker-compose.yml ファイルの検証や内容表示に関するコマンド。

コマンド オプション 説明
docker-compose config
(なし) Composeファイル(デフォルト: docker-compose.yml)を検証し、マージされた最終的な設定内容を標準出力に表示します。環境変数や複数のComposeファイルが適用された結果を確認できます。
docker-compose config -q
-q
–quiet
設定内容に構文エラーがないかだけをチェックし、何も出力しません。エラーがある場合はエラーメッセージを表示し、非ゼロの終了コードを返します。CI/CDでのチェックに便利です ✅。
docker-compose config --services
–services 設定ファイルで定義されているサービスの名前一覧を表示します。
docker-compose config --volumes
–volumes 設定ファイルで定義されているトップレベルのボリューム名一覧を表示します。
docker-compose config --networks
–networks 設定ファイルで定義されているトップレベルのネットワーク名一覧を表示します。
docker-compose -f <file1.yml> -f <file2.yml> config
-f
–file
使用するComposeファイルを指定します。複数指定した場合、後のファイルの内容が前のファイルの内容を上書き・マージします。このオプションは up, down など他の多くのコマンドでも使用可能です。
docker-compose --env-file <path/to/.env> config
–env-file 環境変数を読み込むファイルを指定します。デフォルトではComposeファイルと同じディレクトリにある .env ファイルが読み込まれます。このオプションは他のコマンドでも使用可能です。
docker-compose config --profiles
–profiles 設定ファイルで定義されているプロファイル名の一覧を表示します。
docker-compose config --hash="*"
–hash 指定したサービスの構成ハッシュを表示します。* ですべてのサービスのハッシュを表示します。構成が変更されたかどうかをプログラムで確認するのに役立ちます。
docker-compose config --resolve-image-digests
–resolve-image-digests イメージ名をダイジェスト(一意な識別子)に解決して設定を表示します。

💡 ヒント: .env ファイルや環境変数は、docker-compose.yml 内で ${VARIABLE_NAME} の形式で参照できます。

ネットワークとボリューム

Composeが管理するネットワークやボリュームに関するコマンド (Docker本体のコマンドと連携)。

コマンド オプション 説明
docker network ls
(なし) Dockerが管理する全てのネットワークを一覧表示します。Composeが作成したネットワークは通常 <project_name>_<network_name> という名前になります。 (これは純粋なDockerコマンドですが、Composeと関連が深いため記載)
docker network inspect <network_name>
(ネットワーク名指定) 指定したネットワークの詳細情報(接続されているコンテナなど)を表示します。 (Dockerコマンド)
docker network rm <network_name...>
(ネットワーク名指定) 指定したネットワークを削除します。Compose管理下のネットワークは通常 docker-compose down で削除されますが、孤立した場合などに手動で削除できます。 (Dockerコマンド)
docker volume ls
(なし) Dockerが管理する全てのボリュームを一覧表示します。Composeが作成した名前付きボリュームは通常 <project_name>_<volume_name> という名前になります。 (Dockerコマンド)
docker volume inspect <volume_name>
(ボリューム名指定) 指定したボリュームの詳細情報(マウントポイントなど)を表示します。 (Dockerコマンド)
docker volume rm <volume_name...>
(ボリューム名指定) 指定したボリュームを削除します。使用中のボリュームは削除できません。Compose管理下のボリュームは通常 docker-compose down -v で削除されます。 (Dockerコマンド)
docker volume prune
(なし) どのコンテナからも使用されていないローカルボリュームを一括で削除します。注意して使用してください ⚠️。 (Dockerコマンド)

📝 注記: Docker Compose v2 以降では、docker compose network lsdocker compose volume ls のように、docker compose コマンドのサブコマンドとしてネットワークやボリュームを操作する機能が統合されつつありますが、現状ではまだ docker networkdocker volume コマンドを使用するのが一般的です。

その他 🛠️

バージョン情報表示やイベント監視などの補助的なコマンド。

コマンド オプション 説明
docker-compose version
(なし) インストールされている Docker Compose のバージョン情報を表示します。Docker Engineのバージョンなども併せて表示されることがあります。
docker-compose --version
–version バージョン情報のみを簡潔に表示します。
docker-compose events
(なし) Dockerデーモンからリアルタイムでイベント(コンテナの start, stop, create, destroy など)ストリームを受信し、表示します。Composeプロジェクトに関連するイベントが流れます。
docker-compose events --json
–json イベントをJSON形式で出力します。スクリプトなどで処理する場合に便利です。
docker-compose port <service_name> <private_port>
(なし) 指定したサービスのコンテナポート (<private_port>) に対応するホスト側の公開ポートとIPアドレスを表示します。
docker-compose port --protocol=<proto> <service_name> <private_port>
–protocol ポートのプロトコル (tcp または udp) を指定します。デフォルトは tcp です。
docker-compose port --index=<num> <service_name> <private_port>
–index サービスが複数コンテナで実行されている場合(--scale など)、コンテナのインデックス番号 (<num>) を指定します。デフォルトは 1 です。
docker-compose kill <service_name...>
(サービス名指定) 指定したサービスのコンテナに SIGKILL シグナルを送信して強制停止します。通常は stopdown を使うべきですが、応答しないコンテナを強制終了させる場合に使用します。
docker-compose kill -s <SIGNAL> <service_name...>
-s 送信するシグナルを指定します。デフォルトは SIGKILL です。例: -s SIGTERM
docker-compose pause <service_name...>
(サービス名指定) 指定したサービスのコンテナ内の全てのプロセスを一時停止 (Pause) します。
docker-compose unpause <service_name...>
(サービス名指定) 一時停止 (Pause) されている指定サービスのコンテナ内の全てのプロセスを再開 (Unpause) します。

コメント

タイトルとURLをコピーしました