經過仔細研究,測試和擺弄之後,我只能通過從IP轉發來找到將Docker容器連接到給定接口的方法/港口。這可以通過將-p Host-IP:Host-Port:Container-Port
添加到docker run
命令來完成。將Docker容器連接到網絡接口/設備而不是IP地址
我有一個應用程序,偵聽UDP廣播(255.255.255.255),並且一直無法配置轉發的方式,使得我的容器將接收這些廣播而不轉發我關心的端口上的所有網絡通信(無通過它來的接口),即:-p Host-Port:Container-Port
。
可以使用--net=host
配置容器,只需編寫我的代碼以綁定到我已完成並測試的給定接口,但仍然違背容器的主要思想。目標是讓同一應用程序的多個容器在不同的網絡接口上進行監聽(如設備中的地址)。
有關我如何做到這一點的任何想法?
編輯#1:在考慮了這一點之後,有可能在所需的接口上設置網橋就足夠了,但我不相信操作系統通過它發送廣播數據包。隨着我執行更多測試,請繼續關注。
編輯#2:數據包通過橋發送就好了。但是,網橋被配置爲Docker默認網橋。我一直無法弄清楚如何在不同的網橋上運行容器。看了一些筆記,指向將網絡設置爲--net=none
並通過lxc容器設置自行配置它。
爲什麼泊塢窗橋不夠好? – 2015-02-22 02:28:34
無法以我可以指定要連接的網絡接口的方式配置泊塢橋。這意味着我無法爲每個網絡接口分開容器。 – tryexceptpass 2015-02-23 16:09:57
你可以發佈你的解決方案嗎?我需要類似的東西在Docker容器內部運行DHCP實例 – 2015-12-21 21:13:51