We've also used some unikernel libaries from MirageOS to provide the filesystem and networking 'semantic translation' layers between OSX and Linux.
Most of the processes do not need root access and run as the user.
The filesystem sharing maps OSX volumes seamlessly into the Linux container and remaps MacOS X UIDs into Linux ones (no more permissions problems), and the networking publishes ports to either `docker.local` or `localhost` depending on the configuration.Ī lot of this only became possible in recent versions of OSX thanks to the amework that has been bundled, and the hard work of mist64 who released xhyve (in turn based on bhyve in FreeBSD) that uses it. You just drag-and-drop the Mac application to /Applications, run it, and the Docker CLI just works. There would be a network endpoint on your Mac that pointed at the Linux VM, and the two worlds are quite separate.ĭocker for Mac is a native MacOS X application that embeds a hypervisor (based on xhyve), a Linux distribution and filesystem and network sharing that is much more Mac native. Previously in order to run Linux containers on a Mac, you needed to install VirtualBox and have an embedded Linux virtual machine that would run the Docker containers from the Mac CLI. Let me explain Docker for Mac in a little more detail.