Docker Machine driver plugin for xhyve native OS X Hypervisor
Master branch inherited from nathanleclaire/docker-machine-xhyve. Thanks @nathanleclaire :)
If you have issues or pull-requests, Desired to be posted to this repository.
https://github.com/docker/machine
!! Please do not post the issue of this repository to the docker/machine !!
It will interfere with the development of the docker-machine.
If you were doubt problem either, please post to this repository. I will judge.
Now, libmachine-rpc
driver plugin method is merged docker-machine
master branch.
https://github.com/docker/machine/commit/8aa1572e0dcd75762a7627e1056ef104317f44b9
Awesome @nathanleclaire 🎉
go get github.com/nathanleclaire/machine
cd $GOPATH/src/github.com/docker/machine
# Build docker-machine and some docker-machine official(embedded) driver binary
make build
# Install all binary into /usr/local/bin/
make install
Since it is was hard to os.exec
itself that embedded xhyve.Exec
, for the time being, is separated into xhyve-bindings.
Or, See experimental embedded xhyve branch embed-xhyve
$ go get -d github.com/zchee/xhyve-bindings
$ cd $GOPATH/src/github.com/zchee/xhyve-bindings
$ git checkout daemonize
$ make
$ make install
Create ext.4
filesystem disk image using libguestfs golang binding.
$ brew tap zchee/libguestfs
$ brew install libguestfs --with-go --devel --env=std
Current status only support golang binding.
Also, downloading supermin appliance
kernel files.
Warning! Kernel file size over 4GB!
$ go get -d github.com/zchee/docker-machine-xhyve
$ cd $GOPATH/github.com/zchee/docker-machine-xhyve
$ make
$ make install
-
Shared folder support
- Use
9p
filesystem alsovirtio-9p
? See machyve/xhyve#70 (comment)
- Use
-
Replace execute binary to syscall of golang
- e.g.
hdutil
,dd
- Create blank disk use
libguestfs
instead ofdd
- e.g.
-
Replace generate uuid, execute
uuidgen
to native golang -
Support(Ensure)
kill
,ls
,restart
,status
,stop
command -
Cleanup code and more performance
-
Daemonize xhyve use
syscall
orgo execute external process myself
orOS X launchd daemon
or other daemonize method- Since it is was hard to exec itself that embedded xhyve.Exec, for the time being, is separated into xhyve-bindings.
-
Replace exec uuid2mac binary to standalone
vmnet.go
,dhcp.go
-
Update xhyve source to unofficial edge branchSee update-xhyve-to-edgeReplaceGrand Central Dispatch
instead ofpthreads
, and etc...See https://github.com/AntonioMeireles/xhyve/tree/edgy- Separated xhyve-bindings
-
Occasionally fail convert UUID to IP -
Crash on boot because ofprltoolsd
- Crash it's not an empty disk.img?
- See ailispaw/boot2docker-xhyve#16
- Solved on
boot2docker v1.8.3
- Solved on