Docker Compose は、さまざまな Docker コンテナのデプロイメントを一元管理するために使用できるツールです。これは、各サービスを個別に管理されるコンテナーに簡単に配置できるため、複数のマイクロサービスを必要とするアプリケーションにとって重要なツールです。
Docker Compose は何をするのでしょうか?
Docker コンテナは、分離された環境でアプリケーションを実行するために使用されます。現在では、Docker がもたらす多くの利点により、アプリケーションのデプロイメントが Docker で行われるのが非常に一般的になっています。ただし、多くの場合、単一のコンテナーを実行するほど単純ではありません。通常、多くのコンテナが集まって、多くの可動部分で構成される 1 つのまとまったサービスとして機能することがあります。
デプロイメント時にこれらすべてを管理するのは面倒なので、それをクリーンアップするために、Docker は複数のコンテナーを同時に実行するために使用される構成ツールである Docker Compose を提供します。すべての構成を 1 つの YAML ファイルで定義し、1 つのコマンドですべてのコンテナーを起動できます。
Docker Compose を使用すると、すべてのサービスを 1 つの大きなコンテナーに入れるのではなく、個別に管理可能なコンテナーに分割できます。これは、すべてを個別のコードベースで管理でき、個々のコンテナーを手動で起動する必要がないため、構築とデプロイメントの両方に適しています。
Docker Compose の使用は、次の 3 つのステップのプロセスです。
- Dockerfile を使用してコンポーネント イメージを構築するか、レジストリから取得します。
-
すべてのコンポーネント サービスを
ファイル。docker-compose .yml -
を使用してすべてを一緒に実行します。
CLI。docker-compose
Docker Compose は別の種類の Dockerfile ではありません。 Dockerfile を使用して Docker コンテナを構築して公開する必要があります。ただし、これらを直接実行する代わりに、Docker Compose を使用して複数コンテナー デプロイメントの構成を管理できます。
Docker Compose をどのように使用しますか?
docker compose ファイルの構成は次のように行われます。
docker-compose .yml
。 Dockerfile のように、これをプロジェクトのルートに配置する必要はありません。実際、他のコードに依存しないため、どこにでも使用できます。ただし、イメージをローカルでビルドする場合は、ビルドするコードを含むプロジェクト フォルダーにイメージを配置する必要があります。
Compose 構成ファイルは次のようになります。この構成では、
wordpress
コンテナを Docker Hub から切り離します。ただし、これは MySQL データベースに依存しており、これも Compose によって作成されます。
バージョン: '3'
サービス:
データベース:
画像: mysql:5.7
ボリューム:
– db_data:/var/lib/mysql
再起動: 常に
環境:
MYSQL_ROOT_PASSWORD: rootパスワード変更
MYSQL_DATABASE: ワードプレス
MYSQL_USER: ユーザー名変更
MYSQL_PASSWORD: パスワード変更
ワードプレス:
依存:
– データベース
画像: ワードプレス: 最新
ポート:
– 「8000:80」
再起動: 常に
環境:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: ユーザー名変更名
WORDPRESS_DB_PASSWORD: パスワード変更
ボリューム:
データベースデータ:
このファイルの形式を見てみましょう。まず、バージョン番号です。 使用しているバージョンに応じて 構文が変わる可能性があるためです。
次にサービスのリストです。 1 つ目は「db」という名前で、常に再起動するように設定された
mysql:5.7
コンテナを使用し、環境変数を使用してユーザーとパスワードでデータベースを構成します。再起動後もデータを維持するために、このイメージは MySQL データ ディレクトリにマウントされた Docker ボリュームで構成されています。
もう 1 つのサービスは「wordpress」で、これはデータベース サービスに依存し、Docker が実行前にデータベースが起動していることを確認します。ポート 80 をポート 8000 として公開し、MySQL に接続できるようにいくつかの環境変数を設定します。データベースのホストが
db:3306
に設定されていることに注意してください。これにより、WordPress コンテナが「db」サービスに接続するように指示されます。
最後に、ボリュームは永続ストレージ用に定義されます。オプションで、コンテナーの カスタム ネットワークを定義することも できます。設定できる拡張オプションは多数あるため、何か特定のことを実行したい場合は、 Docker Compose のドキュメントを確認してください。
構成が完了すると、このサービスを開始するのは簡単です。
docker-compose up
実行するだけで、必要なコンテナがすべてプルされ、サービスが開始されます。
docker-compose up -d
また、
docker ps
を使用すると、システム上でサービスが実行されていることが確認できるはずです。この場合、WordPress が正常に起動して実行されていることがわかります。
Docker Compose を使用したビルド
Docker Compose は Dockerfile プロジェクト内でも使用でき、Docker Hub から取得するのではなくローカルでイメージを構築して実行するように設定できます。
これを行うには、サービスに
build
セクションを追加するだけです。異なるコンテキスト ディレクトリを設定したり、イメージごとに異なる Dockerfile を設定したりできます。
バージョン:「3.8」
サービス:
ウェブアプリ:
建てる:
コンテキスト: ./dir
dockerfile: Dockerfile-alternate
画像: 画像名:タグ
この場合、
image:
変数も設定されていますが、ここでは Docker Compose によって構築されたイメージにタグを付けるために使用されます。





