docker-compose.yml
2 つの異なるフォルダーに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