私はアプリケーションスタックを実行するためにdocker-composeを使用しています。リンクされたドッカーコンテナが互いに通信できません
アプリケーションスタックがある:
- Mongoの
- レストサービス(RESTサービス以後称する)
- UIサービス(UIサービス以後称する)以下
あります私のドッカーのスニペット:
services:
mongodb:
image: mongo:3
container_name: mongodb
ports:
- "17027:27017"
rest-service:
build: ./rest-service/
container_name: rest
ports:
- "15000:5000"
command: "/opt/app/conf/config.yml"
links:
- mongodb:mongo
ui-service:
build: ./ui-service/
container_name: ui
ports:
- "18080:8080"
links:
- rest-service:rest
environment:
NODE_ENV: development
私がここで直面している問題は、mongoがrestServiceにリンクされているので、私の休憩サービスがmongoコンテナ(私はポート(27017ドッキング・コンテナ上の)を意味します)と話すことができるということです。しかし、ui-service cantはrest-service(私はポート(Docker Container上の5000)を意味します)と話します。
私はui-serviceをホストポート上のrest-service(私は15000番のドッカーコンテナのポート5000をリッスンします)を話すようにしようとすると動作します。 これがなぜ起こるのか理解できません。
ご協力いただければ幸いです。
'ui-service'の'/etc/hosts'には 'rest'がありますか? 'ui-service'は'休憩する 'ことができますか?(ドッカーのexec -ti ui-service bash - > ping rest)? –
@ThomasMaier 'rest'は' ui-service'の '/ etc/hosts'にありません コマンド' docker exec -ti ui-service bash - > ping rest'は何もしません。 よく、私はコマンドを使用してui-serviceに接続します。 'docker exec -ti ui-service bash'そして、もし私が言うなら、 ' ping rest'と言うと、私は適切な応答を得ます。 ホストマシンの '/ etc/hosts'に' rest'を追加する必要があるのでしょうか? – Aditya
@ThomasMaierホストマシンの '/ etc/hosts'ファイルに' rest'のマッピングを追加すると、動作することが確認されました。 しかし、他に良い方法があるかどうか探しているだけですか? – Aditya