2016-06-30 1 views
1

/Iはservice-a/docker-compose.ymlに設定し、いくつかのサービスを持っているMac上でドッキングウィンドウのベータ版を使用していアクセスホストドッキングウィンドウコンテナからマシンのDNS

::1 service-a.here 
127.0.0.1 service-a.here 

と、そのプロキシを実行しているnginxサーバーがあります。service-a.herelocalhost:4000です。 私のMacで私はちょうど実行することができます:curl http://service-a.here。これはすべてうまく動作します。物事のカップルのために

version: '2' 
services: 
    service-b: 
    # ... 
    ports: 
     - '4001:80' 
    environment: 
     SERVICE_A_URL: service-a.here 

service-bニーズservice-a

今、私は別のサービス、service-b/docker-compose.ymlを構築しています

それは $SERVICE_A_URLにブラウザにユーザーをリダイレクトする必要が
  1. service-aへのHTTP要求を実行する必要があります。$SERVICE_A_URL

この設定では、リダイレクト(1.)のみが機能します。 service-bコンテナ にはDNSにservice-a.hereという概念がないため、HTTP要求(2.)は機能しません。

add_hosts設定変数を使用してservice-a.hereを追加しようとしましたが、設定するのが辛いわけではありません。 localhostはもちろん動作しません。

ドッカーの作成ファイルを別々にしておくこと(実際には私の問題を解決することはできません)は、どちらも既にそれらの内部で多くのサービスが実行されているためです。

ドッキング用のコンテナ内からローカルホスト上でDNSを解決する方法がありますか?例えば、curl service-a.hereはコンテナの中から機能しますか?

答えて

0

docker-compose.ymlファイルで 'link'命令を使用すると、コンテナservice-bからアドレスを自動的に解決できます。

service-b: 
    image: blabla 
    links: 
     - service-a:service-a 
service-a: 
    image: blablabla 

あなたは今の/ etc /あなたのホストサービス-Bの行は言っています:

service-a 172.17.0.X 

、アプリを構成しながら、そのサービスサービス-Bの前に作成されます注意してください。後でどのように特殊なIPを指定することができるのか分かりませんが、Dockerのドキュメントはかなりうまくいきます。あなたが探していたことを願っています。

+0

これは機能します! 1つの 'docker-compose.yml'ファイル。複数の 'docker-compose.yml'のためではありません。 – romeovs

+0

私は 'external_links'に頼らざるを得ないでしょう:/ – romeovs

関連する問題