このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。

【Docker入門】Docker Composeコマンド

 Docker Composeは、複数のDockerコンテナを管理するためのツールであり、Docker Composeコマンドを使用してこれらのコンテナを操作します。以下に「Docker Composeコマンド」の概要と「docker container」コマンドとの違いについて解説します。

「docker compose」コマンド

 Docker Composeコマンドは、複数のDockerコンテナを管理するためのツールであり、以下のようなコマンドを提供しています。

docker compose up

 「compose.yaml」の内容に基づいて、すべてのサービス用のコンテナを構築し、(再)作成し、開始し、アタッチします。通常、「docker compose up」コマンドはデタッチモード(バックグラウンド実行)で実行され、「-d」オプションが付加されます。サービス名を指定して起動することもできます。

docker compose up -d   # 全てのサービスをデタッチモードで起動
docker compose up apache   # 特定のサービス(apache)を起動

docker compose stop

すべてのサービスを停止します。サービス名を指定して停止することもできます。

docker compose stop        # すべてのサービスを停止
docker compose stop nginx  # 特定のサービス(nginx)を停止

docker compose start

既に作成済のDockerコンテナを起動します。

docker compose start       # すべてのサービスを起動

docker compose restart

コンテナを再起動します。

docker compose start       # すべてのサービスを起動

docker compose ps

コンテナの一覧を表示します。

docker compose ps          # コンテナの一覧を表示

docker compose run

特定のサービスの中でコマンドを実行します。

docker compose run <service_name> <command>   # 特定のサービス内でコマンドを実行

docker compose logs

サービスのログを表示します。

docker compose logs   # すべてのサービスのログを表示
docker compose logs <service_name>   # 特定のサービスのログを表示

docker compose down

 「docker compose up」で起動したコンテナの停止と削除を同時に行います。ネットワークも削除されます。

docker compose start       # すべてのサービスを起動

「docker container」コマンドとの違い

単一のコンテナ 対 複数のコンテナ

 「docker container」コマンドは、単一のコンテナに対する操作を行います。一方、Docker Composeは複数のコンテナを一度に管理します。

手動 対 自動化

 「docker container」コマンドを使用すると、コンテナの起動や停止などの操作を手動で行う必要があります。一方、Docker Compose は YAMLファイルに基づいてコンテナを自動的に管理します。

環境変数の取り扱い

 Docker Compose は環境変数を定義し、コンテナに渡すことが容易です。一方、「docker container」コマンドでは、環境変数の設定や管理が手動で行われます。

複雑なネットワーク構成の管理

 Docker Composeは、複数のコンテナ間のネットワーク構成を定義し、管理する機能を提供します。これにより、複雑なマイクロサービスアーキテクチャの管理が容易になります。

まとめ

 「docker compose」コマンドと「docker container」コマンドの主な違いは、前者が複数のコンテナをまとめて管理するのに対し、後者は単一のコンテナに対する操作を行う点です。また、Composeコマンドでは、サービス名を指定することが一般的であり、コンテナ名ではなくサービス名が使用されます。