docker Composeを使用してマルチコンテナーアプリケーションを構築する
Docker Composeでマルチコンテナーアプリケーションを構築するには、 docker-compose.yml
>>>>ファイルでアプリケーションのサービスを定義することが含まれます。このファイルは、各サービスに使用する画像、公開するポート、マウントのボリューム、およびネットワーク構成を指定します。別のデータベースを使用したWebアプリケーションの簡単な例:
最初に、 docker-compose.yml
ファイルを作成します:
<pre class="brush:php;toolbar:false"> <code class="yaml">バージョン:&quot; 3.9&quot;サービス:Web:build:context:./web dockerfile:dockerfileポート: - &quot; 8080:80&quot; Depends_on:-DB DB:画像:POSTGRES:13ポート: - &quot; 5432:5432&quot;環境: - postgres_user = myuser -postgres_password = mypassword </code>
これは2つのサービスを定義します: web
および db
。 web
サービスは、 ./ web
ディレクトリにあるdockerfileから構築されています。ホストマシンでポート8080を公開し、コンテナのポート80にマッピングします。重要なことに、 depends_on:-db
Webアプリケーションの前にデータベースが起動することを保証します。 db
サービスは、事前に構築されたPostgreSQLイメージを使用し、ポート5432を公開します。 docker-compose.yml
and execute:
<code class="bash"> docker-compose up -d-build </code>
-d
フラグは、デタッチされたモードでコンテナを実行します(背景)。 -build
フラグは、必要に応じて web
サービスの画像を構築します。次に、以下を使用してコンテナを停止して削除できます。より複雑なアプリケーションには、複雑な依存関係と構成を備えた複数のサービスが含まれる場合があり、 docker-compose.yml
ファイル内でより詳細な仕様が必要です。環境変数を安全に管理することを忘れないでください。潜在的に .env
ファイルまたは生産環境の秘密管理ソリューションを使用してください。アプリケーション:
docker-compose.yml
ファイル内でリソース制限を構成するための基礎を構成します。これにより、Kubernetesのようなオーケストレーションツールとの統合が容易になります。 docker-compose.yml
ファイルは、単一の真実のソースとして機能します。コンテン間コミュニケーションとデータ共有
Docker Composeは、コンテナー間のコミュニケーションとデータ共有を促進します。このネットワーク内のコンテナは、サービス名を使用して互いに通信できます。たとえば、上記の例では、 web
コンテナは、ホスト名 db
を使用して db
コンテナにアクセスできます。これは通常、アプリケーションコード内の環境変数または構成ファイルを介して行われます。
docker-compose.yml
ファイルで定義し、複数のコンテナに取り付けます。これは、構成ファイル、データベース、またはその他の永続的なデータを共有するのに最適です。例:<code class="yaml">バージョン:&quot; 3.9&quot;サービス:web:#...ボリューム: - shared_data:/app/data db:#... volumes: - shared_data:/var/lib/postgresql/dataボリューム:shared_data:</code>
services。
docker-compose.yml
にメッセージキューサービスを含め、アプリケーションを構成して通信します。メソッドの選択は、アプリケーションの特定のニーズに依存します。単純な構成には、環境変数または直接ネットワーク通信で十分です。永続的なデータまたは非同期通信を含むより複雑なシナリオの場合、ボリュームとメッセージキューがより適切です。
docker-compose.yml
ファイルを確認します。単一のタイプミスは重大な問題につながる可能性があります。
ping
または docker exec
。正しく機能します。リソースの疲労は、予期しない動作につながる可能性があります。 docker-compose restart&lt; service_name&gt;
または docker-compose Up up up up up up up b-build -d
。 -d これにより、問題が1つのコンテナに固有のか、コンテナ間相互作用の結果であるかを判断するのに役立ちます。 Dockerは作曲します。より高度なトラブルシューティング手法については、公式のDocker Composeドキュメントを参照してください。以上がDocker Composeでマルチコンテナーアプリケーションを構築する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。