2016-12-15 131 views
0

我使用的是泊塢窗,compose.yml文件的應用服務和數據庫服務:泊塢窗暴露鏈接主辦機

version: '2' 
services: 

    app-service: 
    image: app-image 
    container_name: app-container 
    ports: 
     - "5000:5000" 
    networks: 
     - my-network 
    links: 
     - db-service 

    db-service: 
    image: db-image 
    container_name: db-container 
    ports: 
     - "5432:5432" 
    networks: 
     - my-network 

networks: 
    my-network: 
    driver: bridge 

應用服務使用連接字符串連接到數據庫與dB服務爲主機:

"User ID=postgres;Password=password;Host=db-service;Port=5432;Database=my-table;Pooling=true;" 

正在運行的應用程序容器上正常工作,但我還需要使用相同的連接字符串從我的主機町訪問數據庫東北。 (在開發過程中數據庫遷移)

  • 我想過添加路由我的主機:
    dB服務 - >本地主機但由於它取決於主機,這不是一個很好的解決方案操作系統。

  • 我試圖在連接字符串中使用localhost,因爲我的主機連接到數據庫容器。但顯然,應用程序容器將不再連接。

  • 我也打得四處network_mode設置和網絡驅動在撰寫文件,但有與沒有運氣。

如何在容器中使用與我的主機相同的主機名?

回答

1

只有這樣,你可以使用相同的連接字符串爲您的應用程序,服務和你的主機將更新您的主機的/etc/hosts文件有:

127.0.0.1 db-service 

(或使用你的,如果你在運行Docker機)

但是這個解決方案可能不是最乾淨的。 IMO最好不要使用相同的連接字符串。