Docker For Mac Hypervisor
Mac OS X 10.11.4 build 15E27e has a Hypervisor.framework bug. This is Apple's bug. Playstation 1 emulator mac. But, Apple has been fixed build 15E33e. If you launch the docker-machine-driver-xhyve on build 15E27e, will displayed.
I always thought that Docker is basically chroot on steroids. However I recently found one project using Docker images with Debian and tutorials were even hosted on OS X so I started digging how it's possible. It led me to information and articles describing how it uses OS X virtualization framework. But keyword here is virtualization so. Is Docker with Linux images on OS X just virtualization on steroids? By that I mean just conventional virtualization, maybe with some better paravirtualization support but still just conventional virtualization with some easier, specialized configuration options? All in all how does it compare to running plain virtual machine?
In opposition to Docker toolbox, Docker for Windows and Docker for Mac are designed to give you the feeling that Docker is running directly on your OS, so they use lightweight virtual machines running under lightweight hypervisors (instead of VirtualBox) handled directly by the docker executable. Hence you won't see them with docker-machine and you won't see another IP address than localhost.
Docker for Windows relies on the HyperV hypervisor which allows a network connection to tcp://localhost:2375. Docker for Mac relies on the xhyve hypervisor, the way it's implemented only provides a connection through the socket unix:///var/run/docker.sock. Workaround To provide a TCP connection for Docker for Mac: • Install socat.
With brew: brew install socat • Run this socat command to forward TCP requests to the socket socat TCP-LISTEN:2375,reuseaddr,fork,bind=localhost UNIX-CONNECT:/var/run/docker.sock • Map what you want on tcp://localhost:2375 Up to you to run the socat command on startup, if necessary. This was for instance useful to me to associate the Webstorm nodeJS debugger to a nodeJS container (since at the time of writing, docker debugging is supported by Webstorm docker integration plugin, but not through unix sockets). Documentation on Docker for Mac limitations There is no docker0 bridge on macOS Because of the way networking is implemented in Docker for Mac, you cannot see a docker0 interface in macOS. This interface is actually within HyperKit.