私は2つの異なるDockerコンテナを持っていて、それぞれ異なるイメージを持っています。コンテナ内の各アプリは、競合しないポートを使用します。 docker-compose.yml
を参照してください:2つの異なるDockerコンテナ間でlocalhostを共有するにはどうすればよいですか?
version: "2"
services:
service_a:
container_name: service_a.dev
image: service_a.dev
ports:
- "6473:6473"
- "6474:6474"
- "1812:1812"
depends_on:
- postgres
volumes:
- ../configs/service_a/var/conf:/opt/services/service_a/var/conf
postgres:
container_name: postgres.dev
hostname: postgres.dev
image: postgres:9.6
ports:
- "5432:5432"
volumes:
- ../configs/postgres/scripts:/docker-entrypoint-initdb.d/
私は、例えば、ホストマシン(Mac OS)をから成功した各画像をカールすることができますcurl -k https://localhost:6473/service_a/api/version
が動作します。私がしたいのは、service_a
コンテナからlocalhost
からpostgres
コンテナを参照することができるように、これらの2つのコンテナが1つであるかのように、同じlocalhost
を共有することです。ホスト名postgres.dev
をservice_a
コンテナの内側から使用すると可能ですが、localhost
を使用したいと考えています。これは可能ですか?私はネットワーキングやドッカーにあまり精通していません。
Mac版:10.12.4
ドッカーバージョン:ドッカーバージョン17.03.0-CE、私はかなり前に研究を行っているが、解決策を見つけることができませんでした60ccb22
構築。 関連性:https://forums.docker.com/t/localhost-and-docker-compose-networking-issue/23100/2
これを行ういくつかの方法(さまざまな度合いのハッキー)が、どのようにしたいですか? – johnharris85
私は繰り返し述べますが、なぜこれをやりたいのですか? 'localhost'で困ったことは、混乱の原因になるだけです。同じコンテナ内で両方のプロセスを実行すると、ハック感がなくても同じ結果が得られます。 – Matt
私の使用例はこれです:これらの2つのサービスはセキュリティのために同じホストに配備する必要がありますので、現実世界の 'service_a'は' localhost/127.0.0.1'だけを聞くように設定されます。理想的には、私はpostgresとservice_aの両方を持つDockerイメージを作成しますが、それは実現可能ではないと思われます。 – kolistivra