複数の docker-compose プロジェクト間の通信 質問する

複数の docker-compose プロジェクト間の通信 質問する

docker-compose.yml2 つの異なるフォルダーに2 つの別々のファイルがあります。

  • ~/front/docker-compose.yml
  • ~/api/docker-compose.yml

のコンテナが のfrontコンテナにリクエストを送信できることを確認するにはどうすればよいですかapi?

--default-gateway個々のコンテナに対して を使用してオプションを設定し、特定の IP アドレスをこのコンテナに割り当てることができることは知っていますdocker runが、 を使用する場合はこのオプションは利用できないようですdocker-compose

現在、私は を実行してdocker inspect my_api_container_id、出力のゲートウェイを確認しています。これは機能しますが、問題はこの IP がランダムに割り当てられるため、信頼できないことです。

この質問の別の形式は次のようになります。

  • docker-compose を使用して特定のコンテナに固定 IP アドレスを割り当てることはできますか?

しかし、最終的に私が求めているのは次のことです。

  • 2 つの異なる docker-compose プロジェクトが相互に通信するにはどうすればよいですか?

ベストアンサー1

相互に通信するコンテナが同じネットワーク上にあることを確認するだけです。ネットワークは第一級の docker 構成要素であり、compose に固有のものではありません。

# front/docker-compose.yml
services:
  front:
    ...
    networks:
      - some-net
networks:
  some-net:
    driver: bridge

...

# api/docker-compose.yml
services:
  api:
    ...
    networks:
      - front_some-net
networks:
  front_some-net:
    external: true

注: アプリのネットワークには「プロジェクト名」に基づいて名前が付けられます。これは、アプリが存在するディレクトリの名前に基づいています。この場合はプレフィックスがfront_追加されています。

その後、サービス名を使用して相互に通信できるようになります。あなたからでも、またその逆もfront可能です。ping api

おすすめ記事