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 up
、 web
サービスはポート 80 ではなくポート 8080 で待機します。
Docker Swam との統合
複数のノードがある分散環境にアプリケーションをデプロイする場合は、 Docker Compose と統合できます Docker Swarm。 これにより、クラスター内の複数のノードにわたるサービスを管理できるようになります Docker。
この統合を使用するには、環境内でまたは コマンド を実行するときに --orchestrate
またはオプション を追加するだけです 。 --with-registry-auth
docker stack deploy
docker-compose up
Swarm
Docker Compose は、アプリケーションの開発、テスト、展開を簡単かつ効率的に行うための便利なツールです。 開発環境と運用環境の違いを最小限に抑え、ソフトウェア開発プロセスの一貫性を確保し、開発チームの生産性を向上させます。