このページで解説している内容は、以下の 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コマンドでは、サービス名を指定することが一般的であり、コンテナ名ではなくサービス名が使用されます。