2015-08-08 103 views
1

我有一個帶有靜態IP地址的VPS(前者爲108.1.2.3)。在這臺服務器上,我有兩個具有獨立IP的docker容器(前者爲10.1.2.3和10.1.2.4)。我有兩個域:domain1.com和domain2.com。 我的問題是:我如何爲這兩個域設置DNS服務器? 我需要將domain1.com指向10.1.2.3,將domain2.com指向10.1.2.4,並通過瀏覽器訪問每個域。我發現了solution,但它不適用於我。VPS上的Docker DNS設置

+0

哪部分不工作?看起來你有正確的解決方案,兩個端口上有兩個容器,轉發到他們自己的80端口,nginx根據它收到的域名轉發到相應的端口。 – jonnybazookatone

+0

那個腳本完美無缺,但!正如它所說的「如果您已經將DNS中的A記錄指向了此服務器IP」。這樣我每個實例只有一個IP地址。只有端口是不同的。如果我有66k容器怎麼辦?它生病了,但如果?:-)如果需要爲用戶提供他自己的IP地址,則更好。 – NONAMA

+0

我發現了第二個問題。每當我創建一個新的容器時,我需要重新加載nginx服務器。幾個用戶創建一個新的容器時很糟糕。 – NONAMA

回答

1

除非您添加網絡接口到VPS,並給它多個靜態IP和綁定的集裝箱港口到這些IP(使用docker run -pip:port:c_port值),您將需要某種反向代理的。

當使用反向代理(如nginx)時,nginx的問題似乎是需要重新加載。請注意,每次啓動新容器時,不僅需要重新加載,而且每次啓動容器時(如果使用內部鏈接到其他容器的nginx容器..)

你需要的是服務發現和配置監聽器自動重新加載您的反向代理,例如:etcd + confd或https://consul.io/

+0

謝謝,文森特!這非常有用! – NONAMA