2016-04-28 133 views
0

我有一個docker-compose.yml文件,有兩個服務,web和auth。如何在橋網絡和主機網絡上創建服務?

當需要驗證時,Web將重定向到驗證。其次,網絡直接授權。

因此,我的主機能夠訪問這兩種服務是有道理的,因爲我可以爲我的主機網絡轉發端口3000和9000,所以這很有用。

但是,問題是我不能使用相同的localhost:9000路由時,應用程序彼此直接對話,因爲它是在一個單獨的橋樑網絡上。

我在主機和橋接網絡上都沒有auth服務嗎?我試過docker network connect container host,明確失敗。如何讓兩個應用程序彼此交談,同時仍然可以從外部訪問它們?

+0

你能粘貼您撰寫的文件?爲什麼你需要任何容器在主機網絡上運行? – johnharris85

回答

0

每個容器都有自己的本地主機,它與運行它們的機器不同。

您可以鏈接指定服務名稱和鏈接別名(SERVICE:ALIAS)的容器,或僅指定服務名稱。例如:

web: 
    ... 
    links: 
    - auth 
    - auth:ldap 

auth: 
    ... 
    links: 
    - web 

容器爲鏈接服務將在相同的別名,或者如果沒有指定別名的服務名稱主機名訪問。

鏈接也以與depends_on相同的方式表示服務之間的依賴關係,因此它們確定服務啓動的順序。

(CIT。docker-compose docs