2016-03-23 41 views
1

我正在尋找代理碼頭集裝箱作爲碼頭主機的子域,如下所示。我見過幾種可以完成類似事情的解決方案,但沒有一個能夠滿足我們的需求。代理碼頭集裝箱作爲子域

主機:公司VPS運行RHEL 7.2

  • 主機域名:host.net(別名真實 - 但它背後的企業內部網,而不是從公共可達)

  • DNS服務器: DNS的host.net委託給主機,所以我需要運行一個DNS服務器:53(這是新的,這就是爲什麼還沒有設置)

  • 主機IP:172.16.10.12

多克爾:1.10

  • 子網:dockernet 192.168.222.1/24

  • 子網DNS(搬運工創建):的dnsmasq上192.168.122.1:53

目標:

  • 的dnsmasq主機上的服務host.net從172.16.10.12
  • 代理所有子域(* .host.net)到子網dockernet使任何容器加入到dockernet將是containername.host到達。 net,containerhostname.host.net,alias1.host.net等
  • 自動發生這種情況的任何容器,連接到碼頭網
  • 將容器視爲主機,所以我們不必手動打開端口通過碼頭:例如:rediscontainer.host.net:6379

疑問/問題:

  • 因爲碼頭工人已經綁定192.168.122.1:53無法啓動主機上的dnsmasq - 我相信我可以配置的dnsmasq到不特定的IP聽,但我'新來這
  • 什麼是相對簡單的配置方法?我希望我可以配置dnsmasq和iptables來做到這一點,但我不知道如何去做,或者如果這兩個可以實現我的目標。
  • 我認爲碼頭的內置DNS爲用戶定義的網絡是自動化容器名稱解析的最簡單的方法,但有沒有更簡單的方法? 我對任何含糊不清的道歉,因爲我是新的DNS,子網等任何幫助,非常感謝!

埃裏克

回答

0

我實現每容器例如動態子域使用nginx-proxy

This article也解釋瞭如何從nginx基本鏡像和dockergen中實現同樣的功能,以便從docker事件生成nginx conf。