Docker put containers on the map and has driven the mainstream container craze over the past few years. Docker has been adopted by and integrated into most major platforms and cloud services by this point—but it has remained a Linux-centric solution…until now. Today Docker announced the beta release of Docker for Mac and Docker for Windows.
Docker invested significant effort to customize the software architecture and optimize Docker for each respective platform. According to Docker, the result is an OS-native experience that allows Docker to integrate with the Windows and Mac OS X operating systems and run just like any traditional application.
“Docker for Mac and Windows reflects deep OS system-level work from our Unikernel Systems team and demonstrates how, moving forward, we can leverage native platform capabilities to provide users with the same optimized Docker experience on all platforms,” explained Solomon Hykes, Founder, CTO and Chief Product Officer for Docker in a press release statement. “These integrated software packages are designed to remove an additional layer of ‘dependency hell’ for Mac and Windows developers by allowing them to develop directly inside a container.”
I spoke with Patrick Chanezon, Chief Developer Advocate for Docker. He told me how and why Docker took advantage of the native virtualization capabilities in each operating system. Docker for Windows leverages the Microsoft Hyper-V virtualization, and Docker for Mac uses the Apple Hypervisor. Using the built-in virtualization enables Docker to integrate host-native features like networking, file systems, and security capabilities.
Both Docker for Windows and Docker for Mac come bundled with everything they need to run. There are no outside dependencies. The bundles include tools like Docker Compose and Notary tools to streamline installation and improve performance and user experience. With the Windows and Mac versions, developers will not need to run third-party software like VirtualBox.
One of the primary benefits of native Docker for Windows and Docker for Mac versions is that it removes the need to install or configure application language-specific dependencies on the local machine, and streamlines workflow by enabling “in container” development. The Docker press release states, “The result is even faster Docker-driven iteration cycles for those using programming stacks that can do live code reload (e.g. node.js, ruby and python) because code changes can be tested instantaneously on the laptop without the need to restart or rebuild the container every time. A Docker ‘build’ is only executed when the developer wants to ship their Dockerized application from their machine to a registry.”
Docker for Mac and Windows currently only provides functionality for Linux containers, but Docker has promised that Windows containers support is coming. Both Docker for Windows and Docker for Mac are expected to be generally available by the end of 2016. For now, Docker for Mac and Windows are available only as limited-availability beta releases. You can sign up for the beta at beta.docker.com and you will be added to a waiting list. Docker encourages beta users to provide feedback on the current state of the software and indicate what you would like to see from it in the future.