2017-09-03 134 views
0

我有以下所示的基本docker-compose.yml爲apache服務器。我想知道是否有一種方法來配置這個Apache服務器,目前可以使用0.0.0.0:8889或localhost:8889進行訪問,所以可以使用自定義主機名訪問,例如:local.foobar.dev例如?Docker撰寫設置主機名

version: '3' 

services: 
    snappyweb: 
     image: php:7.0-apache 
     ports: 
     - "8889:80" 
     volumes: 
     - ./:/var/www/html 

回答

1

我假設你希望這隻適用於你的本地開發環境。

最簡單和最安全的方法是使用一個應用程序,它會讓您的本地瀏覽器認爲選擇的URL是特定的IP地址。該IP可能是locahost:8000

爲此,我使用GasMask(osX)或者您可以使用Host File Manager(Windows)。

+0

感謝您的建議安德魯。我試圖下載它,它似乎工作正常。但它似乎並沒有考慮到端口號。任何想法爲什麼? – AnchovyLegend

+0

這工作得很好。技巧似乎是從GasMask主機配置文件中省略端口號,然後根據需要將其添加到瀏覽器中的URL等。 – AnchovyLegend

+0

更改你的'etc/host'文件只能解決DNS解析及其對應的IP地址。不是他們的端口。在典型的服務器中,端口默認爲80,用於公共流量。如果你想與端口搞砸,我建議閱讀這個SO帖子(https://serverfault.com/a/54371/421371)。 –

0

如果需要使用自定義的名字從你的主機到容器時,您將需要通過添加以下行來做手工local.foobar.dev和所需的IP之間的映射的/ etc /舉辦

127.0.0.1  local.foobar.dev 

對於容器之間的通信,您可以創建一個泊塢窗網和容器添加到該網絡。然後容器可以使用容器名稱到達彼此。

+0

嗨,感謝您的回覆。我試過了。這沒有用。同樣的結果。此外,試圖看看是否有碼頭工人 - 撰寫特定解決方案/但不是必需的。 – AnchovyLegend

+0

@AnchovyLegend你的容器應該可以使用'local.foobar.dev:8889'到達。至於docker-compose解決方案,據我所知沒有從主機到達容器的解決方案,但是從其他容器檢查更新的答案。 – yamenk