Running Docker containers on Mac OS X and Windows is now easier than ever, thanks to integration with native hypervisors. The catch: You still have to use Linux to get Docker working.
Docker released versions of its platform for Windows and Mac OS X in early 2016. On July 28 the offering became generally available.
In their current forms, Docker-on-Windows and Docker-on-Mac are somewhat less clunky than the earlier iteration. Previously, using Docker on these systems required users to run VirtualBox virtual machines. Now Docker uses hypervisors native to the respective operating systems. Those hypervisors are xhyve on OS X and Microsoft Hyper-V on Windows. They take the place of VirtualBox.
Docker is making much of the fact that its containers now can run on Windows and OS X using native hypervisors. The change does streamline things a little bit, since it makes it easier to integrate Docker environments on these platforms more tightly into the host operating system. Combined with the bundling of Docker development tools into the Windows and OS X Docker packages, developers now have a one-stop shop for running Docker containers on these systems.
But these updates do not really amount to much. At the end of the day, Docker on Windows and OS X still runs inside a Linux virtual machine. (Specifically, it uses the lightweight Alpine Linux distribution.)
That means when Docker says you can run Docker containers on Windows or OS X, it’s not exactly true. You’re still running them on top of Linux, using a Linux virtual machine that runs on top of Windows or OS X.
And when you throw a virtual machine into the mix, you lose efficiency. True, Alpine Linux is not exactly a resource hog. The overhead it adds to a Docker system is relatively negligible, especially on modern machines. But it’s overhead all the same.
It would be much more interesting if Docker containers ran completely natively on top of Windows or OS X. That would require a Docker runtime that could integrate directly with the host operating systems, without using a virtual machine.
Why not Linux?
Still, the Docker packages for Windows and OS X offer the value of making it easy for users of those platforms to use Docker containers without having to know how to set up a Linux environment. The packages do all of the configuration for you. This automation presumably serves Docker’s goal of making it simple for people to use its product no matter which operating system they prefer.
One wonders, however, how much value there is in having Docker containers run on Windows or OS X with a Linux virtual machine serving as the middleman. It wouldn’t make much sense to do that in a production hosting environment when you could run Docker on real Linux servers instead. And if you’re a developer who wants to work with Docker containers locally for testing purposes, you probably already know enough about computers to be able to set up a Linux box for yourself.
To be sure, Docker for Windows and OS X doesn’t hurt. But I’m skeptical about how much of an impact it will have beyond a small group of people who want to play around with Docker but are not sufficiently committed to it to work from Linux.