xhyve, 苹果电脑下轻量级虚拟机方案

Docker 底层是跑在 Linux 基础上的,但是我们开发的电脑常用 Apple Mac,
如果想在 OSX 上跑 Docker 的话,一般使用 Virtual Box 或者 VMware 来运行一个VM。
因为这层软件也不是原生的,相当于多加了一层,
开启一个 VM 常常很耗时,运行在上面的应用的性能并不好。

常常让人觉得 Docker 对 OSX 的亲和力不够。

最近才看到有一个基于 OSX 原生底层的 VM 叫做 xhyve。我尝鲜了一把,虽然遇到了一个小坑,但是克服之后用起来感觉很不错,赶紧来看看吧。

Install

brew install xhyve docker-machine-driver-xhyve docker docker-machine

如果之前有安装过 docker 系列的的,推荐升级或者重新安装一遍。

create a VM

docker-machine create default --driver xhyve
eval $(docker-machine env)

网上有推荐加 nfs 参数的,如果需要在host机和VM之间互传数据的话。

docker-machine create default --driver xhyve -—xhyve-experimental-nfs-share

验证

docker ps
docker run hello-world

遇到的坑

参数 -v 带的本地 volume 映射不上去。

docker run -v .:/usr/app sh

运行后进入到 container 时发现并没有相应的文件。

解决办法:

执行

grep Virtio9p ~/.docker/machine/machines/default/config.json

如果该值是 false 改成 true,再重启 VM 就解决了。

docker-machine restart

很好奇为什么不是默认开启?可以关注下官方的issue

后续

使用 vhyme 后极大的降低了 VM 的开启速度。
他也极好的支持了使用 swarm 的来增加 node 的测试。我在后面篇幅将进行尝试。