Boot2Docker running on xhyve hypervisor
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

Boot2Docker running on xhyve hypervisor


  • boot2docker v18.09.1
  • Disable TLS
  • Expose the official IANA registered Docker port 2375
  • Support NFS synced folder: /Users is NFS-mounted on the boot2docker VM.


  • xhyve
    • Mac OS X Yosemite 10.10.3 or later
    • A 2010 or later Mac (i.e. a CPU that supports EPT)


  • Kernel Panic will occur on booting, if VirtualBox (< v5.0) has run before.
  • Pay attention to exposing the port 2375 without TLS, as you see the features.

Installing xhyve

$ git clone
$ cd xhyve
$ make
$ cp build/xhyve /usr/local/bin/    # You may require sudo


$ brew install xhyve

Setting up Boot2Docker images and tools

$ git clone
$ cd boot2docker-xhyve
$ make

Booting Up

$ sudo ./

Core Linux
boot2docker login: 


$ make run    # You may be asked for your sudo password
Booting up...
  • On This will open a new window, then you will see in the window as below.
  • On This will split the current window, then you will see in the bottom pane as below.
Core Linux
boot2docker login: 

Logging In

  • ID: docker
  • Password: tcuser (in most instances you will not be prompted for a password)
$ make ssh
docker@'s password:
   ( '>')
  /) TC (\   Core is distributed with ABSOLUTELY NO WARRANTY.


Shutting Down

Use halt command to shut down in the VM:

docker@boot2docker:~$ sudo halt
docker@boot2docker:~$ reboot: System halted

or, use make halt on the host:

$ make halt
docker@'s password:
Shutting down...

Using Docker

You can simply run Docker within the VM. However, if you install the Docker client on the host, you can use Docker commands natively on the host Mac. Install the Docker client as follows:

$ curl -L -o docker
$ chmod +x docker
$ mv docker /usr/local/bin/    # You may require sudo

Alternatively install with Homebrew:

$ brew install docker

Then, in the VM, or on the host if you have installed the Docker client:

$ make env
export DOCKER_HOST=tcp://;
$ eval $(make env)

$ docker info
Containers: 0
 Running: 0
 Paused: 0
 Stopped: 0
Images: 0
Server Version: 18.09.1
Storage Driver: overlay2
 Backing Filesystem: extfs
 Supports d_type: true
 Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
 Volume: local
 Network: bridge host macvlan null overlay
 Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 9754871865f7fe2f4e74d43e2fc7ccd237edcbce
runc version: 96ec2177ae841256168fcf76954f7177af9446eb
init version: fec3683
Security Options:
  Profile: default
Kernel Version: 4.14.92-boot2docker
Operating System: Boot2Docker 18.09.1 (TCL 8.2.1)
OSType: linux
Architecture: x86_64
CPUs: 1
Total Memory: 989.4MiB
Name: boot2docker
Docker Root Dir: /mnt/vda1/var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Experimental: false
Insecure Registries:
Live Restore Enabled: false
Product License: Community Engine

WARNING: API is accessible on without encryption.
         Access to the remote API is equivalent to root access on the host. Refer
         to the 'Docker daemon attack surface' section in the documentation for
         more information:

Upgrading Boot2Docker

When Boot2Docker is upgraded and boot2docker-xhyve is updated,

$ git pull origin master
$ make upgrade


  • /var/db/dhcpd_leases
  • /Library/Preferences/SystemConfiguration/
    • Shared_Net_Address
    • Shared_Net_Mask