Docker Compose: 基本と使い方

Docker Compose は、 に基づいてアプリケーションを管理および展開するために使用される強力で人気のあるツールです Docker。 Docker これにより、複数のコンテナを 1 つのプロジェクトとして 定義、構成、実行できるため、アプリケーションのデプロイメントが簡素化され、開発環境と運用環境の間の一貫性が確保されます。

以下に、いくつかの概念と例を示します Docker Compose。

docker-compose.yml ファイルを使用してプロジェクトを定義する

この docker-compose.yml ファイルでは、アプリケーションに必要なサービスを定義できます。 たとえば、MySQL データベースを使用して PHP Web アプリケーションをデプロイするには、次のように 2 つのサービスを定義できます。

version: "3"  
services:  
  web:  
    image: php:7.4-apache  
    ports:  
   - "80:80"  
    volumes:  
   - ./app:/var/www/html  
  
  db:  
    image: mysql:5.7  
    environment:  
      MYSQL_ROOT_PASSWORD: password  
      MYSQL_DATABASE: my_database  

上記のコード スニペットでは、 web と の2 つのサービスを定義します db。 このサービスは、 で web PHP 7.4 を使用し 、ポート 80 でリッスンし、 ディレクトリをホストから の ディレクトリにマウントします 。 この サービスは MySQL 5.7 を使用し 、データベースに必要ないくつかの環境変数を設定します。 image Apache ./app /var/www/html container db image

 

Docker Compose コマンド の使用

ファイル内でプロジェクトを定義したら、 コマンドを使用してサービスを管理できるように docker-compose.yml なります。 Docker Compose

  • プロジェクトを開始します。 docker-compose up

    このコマンドは、ファイルで定義されているサービスのコンテナを起動します docker-compose.yml

  • コンテナを停止して削除します。 docker-compose down

    このコマンドは、プロジェクトに関連するすべてのコンテナを停止し、削除します。

  • 実行中のコンテナをリストします。 docker-compose ps

    このコマンドは、プロジェクト内のコンテナーのステータスを表示します。

  • サービスログを表示します。 docker-compose logs

    このコマンドは、プロジェクト内のサービスのログを表示します。

 

環境変数とカスタマイズ

Docker Compose 環境変数を使用して、開発や実稼働などのさまざまな環境の構成をカスタマイズできます。 ファイル内で環境変数を使用し docker-compose.yml 、対応するファイルでその値を定義できます .env

たとえば、サービスのポートの環境変数を定義する場合は、 次のような web 行をファイルに追加できます。 .env

WEB_PORT=8080

次に、 docker-compose.yml ファイル内でこの環境変数を次のように使用できます。

version: "3"  
services:  
  web:  
    image: php:7.4-apache  
    ports:  
   - "${WEB_PORT}:80"  
    volumes:  
   - ./app:/var/www/html  

コマンドを実行すると docker-compose upweb サービスはポート 80 ではなくポート 8080 で待機します。

 

Docker Swam との統合

複数のノードがある分散環境にアプリケーションをデプロイする場合は、 Docker Compose と統合できます Docker Swarm。 これにより、クラスター内の複数のノードにわたるサービスを管理できるようになります Docker。

この統合を使用するには、環境内でまたは コマンド を実行するときに --orchestrate またはオプション を追加するだけです 。 --with-registry-auth docker stack deploy docker-compose up Swarm

 

Docker Compose は、アプリケーションの開発、テスト、展開を簡単かつ効率的に行うための便利なツールです。 開発環境と運用環境の違いを最小限に抑え、ソフトウェア開発プロセスの一貫性を確保し、開発チームの生産性を向上させます。