[英]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.