osx – docker的“net = host”設定是如何工作的,我該怎麼做類似的例子. VirtualBox的?
,允許您執行與主機共享網路堆疊的虛擬機器 – 例如,docker容器中的程序可以通過localhost連線到主機,反之亦然.
我想在osx上設定一個同樣的東西的linux VM;我試過使用Vagrant及其各種網路設定,沒有運氣.
Docker的VM是否依賴主機和客戶機作業系統都是linux,還是有一些方法可以完成我缺少的osx-> linux?
感謝同事的一些幫助,我找到了解決這個問題的辦法.此解決方案適用於boot2docker / VirtualBox.我剛剛使用boot2docker init建立了Docker VM,我沒有對VM配置進行任何具體的更改.
首先,使用–net = host執行docker映像,以便它與主機VM共享網路.
docker run -it --net=host ubuntu bash
然後,您需要從用於docker容器的VM中找到IP地址,您可以通過執行OSX主機的boot2docker ssh來執行此操作.
然後,您可以通過查詢其閘道器來查詢虛擬機器的IP地址:
$netstat -rn | grep UG | awk '{print $2}' 10.0.2.2
所以在我的情況下是10.0.2.2.您現在可以使用該IP地址訪問在主機上開啟的埠,即在通過Docker容器執行在OSX上的程式.
要自動化,您可以先找到IP地址,然後將其作為環境變數傳遞給docker命令
http://stackoverflow.com/questions/25170738/how-does-dockers-net-host-setting-work-and-how-can-i-do-something-similar-wi