最近一直在研究mac版的docker网络配置,mac版封装好了用xhyve创建的虚拟机,这台虚拟机才是docker的宿主机。

所以好多关于docker宿主机网络的配置其实都是针对这台虚拟机而言的。比如pipework的脚本、docker network create时用的-o parent参数等等。所以docker network ls出的Driver为bridge的网络,实际并不是我们常说的如vmware或者vbox的桥接网络,应该是个NAT网络。官方声明没有在Mac版的docker上实现桥接。

NETWORK ID          NAME                DRIVER              SCOPE

acaf9d37e7f2        bridge              bridge              local

11e2f868967a        devnet              bridge              local

做了很多的尝试。包括直接启动这个虚拟机的镜像、直接解压docker-for-mac.iso然后重新打包、nc连接socket等,最终还是无功而返。

偶然间想到screen和socket通信的方式,尝试了一下。果然能够登录到这台虚拟机了。希望对用到的人有帮助。

KumasMBA:com.docker.driver.amd64-linux kumas$ pwd
/Users/kumas/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux
KumasMBA:com.docker.driver.amd64-linux kumas$ ls -l
total 1680
……
lrwxr-xr-x  1 kumas  staff      12  8 29 15:44 tty -> /dev/ttys000
#就是要连接这个终端

KumasMBA:com.docker.driver.amd64-linux kumas$ screen ./tty
完整路径
screen ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/tty

终于可以连上这个虚拟机了。后续的就可以进一步研究了,比如如何真正的mac通信、openvswitch、ipvlan等等的实验……我自己之前的问题似乎也有了新的研究方向。

这里算是抛砖引用开个头吧,绝对是个人灵感大发想到的,没有搜到相关的资料(也许是我知之甚少,

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐