2016-09-17 95 views
0

我開始用Docker構建環境開發我的應用程序。在生產中逐步遷移到Docker

我有上我與Apache服務的幾個(本地安裝)Web應用程序的物理服務器。

Apache listening on 80 
    sites-available 
     app1 -> locally installed in /apps/app1 
     app2 -> locally installed in /apps/app2 
     ... 

現在我已經爲我的應用程序準備了一個全面的Docker生產環境。我想插在我的舊服務器的本地安裝的應用程序旁邊:

Apache listening on 80 
    sites-available 
     app1 -> locally installed in /apps/app1 
     app2 -> locally installed in /apps/app2 
     app3 -> proxy to the related Docker service 
     ... 

,並逐步Dockerize我的其他現有的應用程序。

主要問題是:
我必須每次都在專用端口中公開dockerized服務嗎?

有一些網絡技術,我不知道的,我可以用它來最後幾個代理業務的同一臺機器上運行?

你也可以指點我一些Apache代理的例子嗎?

最終,我會打開Nginx的時候我就會有一個獨家代理。

回答

1

在Docker中,公開特定容器的首選方法是使用專用端口。有很多方法可以直接連接到容器,特別是當您在同一臺計算機上運行時,但是如果重新構建容器,則會創建跟蹤容器當前IP的挑戰。

對於您的情況,我建議在容器中放置第二個代理。由於它作爲一個容器運行,它可以通過名稱連接到每個其他容器。我個人最喜歡的這個實現是nginx-proxy,它監聽docker socket的啓動和停止以自動更新其配置。

然後,一旦你完成你遷移到容器中,您可以在nginx的代理在關閉現有的Apache代理過程中添加其他偵聽端口。

+0

這很有趣。我想大多是我在尋找什麼。 –