簡體   English   中英

為OSX上的docker-machine引導的VirtualBox實例找到正確的網絡接口

[英]Finding the correct network interface for VirtualBox instance spun up by docker-machine on OSX

我試圖自動化一個docker run shell腳本,該腳本需要啟動一個在OSX / mac上帶有virtualbox驅動程序的docker-machine VM上運行的X11應用程序。 為了使x11應用程序將X11顯示轉發到桌面主機,我需要獲取正確的vboxnet *(我認為)網絡接口(不是docker ip)的IP地址,並將該IP導出到docker容器中。

我目前正在做的是假設docker-machine VM ip綁定到“ vboxnet1”接口名稱,並將其從ifconfig中進行正則表達式。

我看到啟動docker-machine時啟動的virtualbox DHCP進程具有與我想要的接口相對應的主干名稱-但這又像是一種假設,我認為我可以運行某些命令來確定哪個解決這個問題,這樣我的docker run腳本就可以在任何機器上運行。

/Applications/VirtualBox.app/Contents/MacOS/VBoxNetDHCP --ip-address    
192.168.99.2 --lower-ip 192.168.99.100 --mac-address XXXXXXXXXXX
  --netmask 255.255.255.0 --network HostInterfaceNetworking-vboxnet1 
--trunk-name vboxnet1 --trunk-type netadp --upper-ip 192.168.99.254

有沒有一種方法可以確定地確定要查找ip地址的網絡接口?

這個bash腳本似乎可以在OSX機器上運行:

#!/bin/bash    
CONFIG=$( ifconfig | grep -A 2 'vboxnet1')

regex="([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})"

if [[ $CONFIG =~ $regex ]]; then
      DISPLAY=${BASH_REMATCH[1]}
      DISPLAY+=":0"
fi
ifconfig $(route -n get $(docker-machine ip default) | grep interface: | awk '{print $2}') | grep inet | awk '{print $2}'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM