{"id":13615007,"url":"https://github.com/machine-drivers/docker-machine-driver-xhyve","last_synced_at":"2025-05-16T15:07:31.136Z","repository":{"id":52570849,"uuid":"42417822","full_name":"machine-drivers/docker-machine-driver-xhyve","owner":"machine-drivers","description":"docker-machine/minikube/minishift driver plugin for xhyve/hyperkit (native macOS hypervisor.framework)","archived":false,"fork":false,"pushed_at":"2021-04-25T16:08:30.000Z","size":21459,"stargazers_count":885,"open_issues_count":69,"forks_count":73,"subscribers_count":43,"default_branch":"master","last_synced_at":"2025-04-12T11:58:50.756Z","etag":null,"topics":["docker","docker-machine","go","hyperkit","hypervisor","libmachine-driver-plugin","macos","minikube","minishift","xhyve"],"latest_commit_sha":null,"homepage":"https://godoc.org/github.com/machine-drivers/docker-machine-driver-xhyve","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/machine-drivers.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-09-14T00:09:42.000Z","updated_at":"2025-03-28T07:26:42.000Z","dependencies_parsed_at":"2022-09-19T19:05:41.283Z","dependency_job_id":null,"html_url":"https://github.com/machine-drivers/docker-machine-driver-xhyve","commit_stats":null,"previous_names":["zchee/docker-machine-driver-xhyve","zchee/docker-machine-xhyve"],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/machine-drivers%2Fdocker-machine-driver-xhyve","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/machine-drivers%2Fdocker-machine-driver-xhyve/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/machine-drivers%2Fdocker-machine-driver-xhyve/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/machine-drivers%2Fdocker-machine-driver-xhyve/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/machine-drivers","download_url":"https://codeload.github.com/machine-drivers/docker-machine-driver-xhyve/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254553958,"owners_count":22090417,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","docker-machine","go","hyperkit","hypervisor","libmachine-driver-plugin","macos","minikube","minishift","xhyve"],"created_at":"2024-08-01T20:01:08.094Z","updated_at":"2025-05-16T15:07:26.128Z","avatar_url":"https://github.com/machine-drivers.png","language":"Go","funding_links":[],"categories":["Go","minikube","Repositories"],"sub_categories":[],"readme":"docker-machine-driver-xhyve\n===========================\n\n| **Travis CI**                           | **Releases**                          |\n|:---------------------------------------:|:-------------------------------------:|\n| [![Travis CI][travis-badge]][travis-ci] | [![Releases][release-badge]][release] |\n\n[![GA][ga-badge]][ga]\n\nlibmachine driver plugin for [xhyve](https://github.com/mist64/xhyve) native OS X Hypervisor\n\nMaster branch inherited from [nathanleclaire/docker-machine-xhyve](https://github.com/nathanleclaire/docker-machine-xhyve). Thanks [@nathanleclaire](https://github.com/nathanleclaire) :)  \nIf you have issues or pull-requests, Desired to be posted to this repository.\n\nScreencast\n----------\n\n[![asciinema](imgs/launch.png)](https://asciinema.org/a/29930)\n\nRequirements\n------------\n\n### docker-machine, minikube or minishift\n\n-\thttps://github.com/docker/machine\n-\thttps://github.com/kubernetes/minikube\n-\thttps://github.com/minishift/minishift\n\ndocker-machine-driver-xhyve using libmachine plugin model.\n\n**Please do not post the issue of this repository to docker/machine, kubernetes/minikube and minishift/minishift**  \nIt will interfere with the development of docker-machine, minikube or minishift.  \nIf you were doubt problem either, please post to this repository [issues](https://github.com/zchee/docker-machine-driver-xhyve/issues).\n\n-\tdocker-machine\n\n\t-\tSee https://github.com/docker/machine/releases\n\n-\tminikube\n\n\t-\tSee https://github.com/kubernetes/minikube/releases\n\n-\tminishift\n\n\t-\tSee https://github.com/minishift/minishift/releases\n\nInstall\n-------\n\nUse [Homebrew/brew](https://github.com/Homebrew/brew):\n\n```sh\n$ brew install docker-machine-driver-xhyve\n\n# docker-machine-driver-xhyve need root owner and uid\n$ sudo chown root:wheel $(brew --prefix)/opt/docker-machine-driver-xhyve/bin/docker-machine-driver-xhyve\n$ sudo chmod u+s $(brew --prefix)/opt/docker-machine-driver-xhyve/bin/docker-machine-driver-xhyve\n```\n\nUse `go` with `make`:  \nIf you want to support qcow2 disk image format, need install [mirage/ocaml-qcow](https://github.com/mirage/ocaml-qcow). See [docker/hyperkit#building](https://github.com/docker/hyperkit#building).\n\n```sh\n# Need Go 1.5 vendoring support\n$ export GO15VENDOREXPERIMENT=1\n\n$ go get -u -d github.com/zchee/docker-machine-driver-xhyve\n$ cd $GOPATH/src/github.com/zchee/docker-machine-driver-xhyve\n\n# Install qcow-format for qcow2 disk image format\n$ brew install opam libev\n$ opam init\n$ eval `opam config env`\n$ opam install uri qcow-format io-page.1.6.1 conf-libev\n\n# Install docker-machine-driver-xhyve binary into /usr/local/bin\n$ make install\n\n# docker-machine-driver-xhyve need root owner and uid\n$ sudo chown root:wheel /usr/local/bin/docker-machine-driver-xhyve\n$ sudo chmod u+s /usr/local/bin/docker-machine-driver-xhyve\n```\n\nWe use [Glide](https://github.com/Masterminds/glide) for dependency management.\n\n```sh\n$ go get github.com/Masterminds/glide\n```\n\nThis will install the glide binary into `$GOPATH/bin`.\n\nUpdating Dependencies\n\nIf your work requires a change to the dependencies, you need to update the Glide\nconfiguration.\n\n- Edit glide.yaml to change the dependencies as needed.\n- Delete `glide.lock` and re-create the vendor directory by running `make vendor`. Glide will recognize that there is no lock file and recalculate the required dependencies.\n- Check-in the updated `glide.yaml` and `glide.lock` files.\n- Test that everything still compiles with the new lock file in place by running make clean \u0026\u0026 make.\n\nNote: In some cases the Glide cache located under ~/.glide/cache can get corrupted. If you seeing Glide errors during `make vendor`, you can clear the Glide cache via `glide cc`.\n\nUsage\n-----\n\n### Available flags\n\n| Flag name                        | Environment variable           | Type   | Default                                                                                                                              |\n|----------------------------------|--------------------------------|--------|--------------------------------------------------------------------------------------------------------------------------------------|\n| `--xhyve-boot2docker-url`        | `XHYVE_BOOT2DOCKER_URL`        | string | `$HOME/.docker/machine/cache/boot2docker.iso`                                                                                        |\n| `--xhyve-cpu-count`              | `XHYVE_CPU_COUNT`              | int    | `1`                                                                                                                                  |\n| `--xhyve-memory-size`            | `XHYVE_MEMORY_SIZE`            | int    | `1024`                                                                                                                               |\n| `--xhyve-disk-size`              | `XHYVE_DISK_SIZE`              | int    | `20000`                                                                                                                              |\n| `--xhyve-uuid`                   | `XHYVE_UUID`                   | int    | `''`                                                                                                                                 |\n| `--xhyve-boot-cmd`               | `XHYVE_BOOT_CMD`               | string | See [AUTOMATED_SCRIPT.md](https://github.com/boot2docker/boot2docker/blob/master/doc/AUTOMATED_SCRIPT.md#extracting-boot-parameters) |\n| `--xhyve-boot-kernel`            | `XHYVE_BOOT_KERNEL`            | string | `''`                                                                                                                                 |\n| `--xhyve-boot-initrd`            | `XHYVE_BOOT_INITRD`            | string | `''`                                                                                                                                 |\n| `--xhyve-qcow2`                  | `XHYVE_QCOW2`                  | bool   | `false`                                                                                                                              |\n| `--xhyve-virtio-9p`              | `XHYVE_VIRTIO_9P`              | bool   | `false`                                                                                                                              |\n| `--xhyve-experimental-nfs-share` | `XHYVE_EXPERIMENTAL_NFS_SHARE` | string   | Path to a host folder to be shared inside the guest |                                                   |\n| `--xhyve-experimental-nfs-share-root` | `XHYVE_EXPERIMENTAL_NFS_SHARE_ROOT` | string   | root path at which the NFS shares will be mounted| `/xhyve-nfsshares`                                                  |\n\n#### `--xhyve-boot2docker-url`\n\nThe URL(Path) of the boot2docker image.  \nBy default, use cached iso file path.\n\n#### `--xhyve-cpu-count`\n\nNumber of CPUs to use the create the VM.  \nIf set `-1`, use logical CPUs usable by the current process.\n\n#### `--xhyve-memory-size`\n\nSize of memory for the guest.\n\n#### `--xhyve-disk-size`\n\nSize of disk for the guest (MB).\n\n#### `--xhyve-uuid`\n\nThe UUID for the machine.  \nBy default, generate and use random UUID. See [xhyve/uuid.go](https://github.com/zchee/docker-machine-driver-xhyve/blob/master/xhyve/uuid.go)\n\n#### `--xhyve-boot-cmd`\n\nBooting xhyve kexec commands.  \nBy default, use  \n`loglevel=3 user=docker console=ttyS0 console=tty0 noembed nomodeset norestore waitusb=10 base host=boot2docker`\n\n#### `--xhyve-boot-kernel`\n\nBooting kernel file path.  \nBy default, will automatically parses the file path using `(vmlinu[xz]|bzImage)[\\d]*`.\n\n#### `--xhyve-boot-initrd`\n\nBooting initrd file path.  \nBy default, will automatically parses the `initrd` contains file path.\n\n#### `--xhyve-qcow2`\n\nUse `qcow2` disk format.  \nIf you using minikube, `CONFIG_VIRTIO_BLK=y` support is included in minikube-iso as of version v0.0.6.\n\n#### `--xhyve-rawdisk`\n\nUse a simple 'raw disk' format and virtio-blk driver for storage.\nThis may be significantly faster for I/O intensive applications, at the potential cost of data durability.\n\n#### `--xhyve-virtio-9p`\n\nEnable `virtio-9p` folder share.  \nIf you using docker-machine, `CONFIG_NET_9P=y` support is included in boot2docker as of version v1.10.2.\n\n#### `--xhyve-experimental-nfs-share /path/to/host/folder`\n\nShare `path/to/host/folder` inside the guest at the path specified by `--xhyve-experimental-nfs-share-root` (which itself defaults to `/xhyve-nfsshares`).\n\nCan be specified multiple times\n\n#### `--xhyve-experimental-nfs-share-root /path`\n\nBy default, NFS Shares will be mounted in the Guest at `/xhyve-nfsshares`.\n\nYou can change this default by specifying `--xhyve-experimental-nfs-share-root /path`, `/path` being a path to the root\n\n\nKnown issue\n-----------\n\n### Does not clean up the vmnet when remove a VM\n\nCurrently, `docker-machine-driver-xhyve` does not clean up the `dhcpd_leases`.  \nlike,\n\n```sh\n# Running xhyve vm. for example, assign 192.168.64.1\n$ docker-machine create --driver xhyve xhyve-test\n        |\n# Send ACPI signal(poweroff) signal over the ssh\n$ docker-machine rm xhyve-test\n        |\n# Re-create xhyve vm, will assign 192.168.64.2\ndocker-machine create --driver xhyve xhyve-test\n```\n\nIt will assigned to 192.168.64.**2**. If create another vm, assigned to 192.168.64.**3**.  \nBut 192.168.64.**1** are not using anyone.\n\n`vmnet.framework` seems to have decide the IP based on below files\n\n-\t`/var/db/dhcpd_leases`\n-\t`/Library/Preferences/SystemConfiguration/com.apple.vmnet.plist`\n\nSo, If you want to reset IP database, please remove it manually. but **very risky**.  \nNote that `vmnet.framework` shared net address range is `192.168.64.1` ~ `192.168.64.255`. You can make 255 vm.\n\nI will implement the clean-up process after understanding the `vmnet.framework`.\n\n### Can't launch on macOS 10.11.4 build 15E27e\n\nMac OS X 10.11.4 build `15E27e` has a **Hypervisor.framework bug**.  \nThis is Apple's bug.  \nBut, Apple has been fixed build `15E33e`.\n\nIf you launch the `docker-machine-driver-xhyve` on build 15E27e, will displayed\n\n```sh\nopen : no such file or directory\n```\n\nand, In original `xhyve`,\n\n```sh\nhv_vm_create failed\n```\n\nSee\n\n-\thttps://asciinema.org/a/34798 (15E27e)\n-\thttps://asciinema.org/a/34797 (15E33e)\n\nCould you report?\n-----------------\n\nI'm very anxious whether other users(except me) are able to launch the xhyve.  \nSo, if you were able to launch the xhyve use docker-machine-driver-xhyve, Could you post a report to this issue thread?  \nhttps://github.com/zchee/docker-machine-driver-xhyve/issues/18\n\nIf macOS launched by the `Vagrant`, can be build, but will not be able to launch the Hypervisor.  \nThe cause probably because backend vm (Virtualbox, VMWare, parallels...) to hide the CPU information.\n\nIn the case of VMWare,\n\n```sh\n$ system_profiler SPHardwareDataType\nsystem_profiler[458:1817] platformPluginDictionary: Can't get X86PlatformPlugin, return value 0\nsystem_profiler[458:1817] platformPluginDictionary: Can't get X86PlatformPlugin, return value 0\nHardware:\n\n    Hardware Overview:\n\n      Model Name: Mac\n      Model Identifier: VMware7,1\n      // Where is \"Processor Name:\" field?\n      Processor Speed: 2.19 GHz\n      Number of Processors: 1\n      Total Number of Cores: 1\n      L2 Cache: 256 KB\n      L3 Cache: 6 MB\n      Memory: 2 GB\n      Boot ROM Version: VMW71.00V.0.B64.1505060256\n      SMC Version (system): 1.16f8\n      Serial Number (system): ************\n      Hardware UUID: ********-****-****-****-************\n\n$ git clone https://github.com/mist64/xhyve \u0026\u0026 cd xhyve\n$ make\n$ ./xhyverun.sh\nvmx_init: processor not supported by Hypervisor.framework\nUnable to create VM (-85377018)\n```\n\n[travis-badge]: https://img.shields.io/travis/zchee/docker-machine-driver-xhyve.svg?style=flat-square\u0026label=%20Travis%20CI\u0026logo=data%3Aimage%2Fsvg%2Bxml%3Bcharset%3Dutf-8%3Bbase64%2CPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI2MCIgaGVpZ2h0PSI2MCIgdmlld0JveD0iNSA0IDI0IDI0Ij48cGF0aCBmaWxsPSIjREREIiBkPSJNMTEuMzkyKzkuMzc0aDQuMDk2djEzLjEyaC0xLjUzNnYyLjI0aDYuMDgwdi0yLjQ5NmgtMS45MnYtMTMuMDU2aDQuMzUydjEuOTJoMS45ODR2LTMuOTA0aC0xNS4yOTZ2My45MDRoMi4yNHpNMjkuMjYzKzIuNzE4aC0yNC44NDhjLTAuNDMzKzAtMC44MzIrMC4zMjEtMC44MzIrMC43NDl2MjQuODQ1YzArMC40MjgrMC4zOTgrMC43NzQrMC44MzIrMC43NzRoMjQuODQ4YzAuNDMzKzArMC43NTMtMC4zNDcrMC43NTMtMC43NzR2LTI0Ljg0NWMwLTAuNDI4LTAuMzE5LTAuNzQ5LTAuNzUzLTAuNzQ5ek0yNS43MjgrMTIuMzgyaC00LjU0NHYtMS45MmgtMS43OTJ2MTAuNDk2aDEuOTJ2NS4wNTZoLTguNjR2LTQuOGgxLjUzNnYtMTAuNTZoLTEuNTM2djEuNzI4aC00Ljh2LTYuNDY0aDE3Ljg1NnY2LjQ2NHoiLz48L3N2Zz4=\n[travis-ci]: https://travis-ci.org/zchee/docker-machine-driver-xhyve\n[release-badge]: https://img.shields.io/github/release/zchee/docker-machine-driver-xhyve.svg?style=flat-square\n[release]: https://github.com/zchee/docker-machine-driver-xhyve/releases\n[ga-badge]: https://ga-beacon.appspot.com/UA-89201129-1/docker-machine-driver-xhyve?flat\u0026useReferer\u0026pixel\n[ga]: https://github.com/zchee/docker-machine-driver-xhyve\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmachine-drivers%2Fdocker-machine-driver-xhyve","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmachine-drivers%2Fdocker-machine-driver-xhyve","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmachine-drivers%2Fdocker-machine-driver-xhyve/lists"}