Since Docker's original launch, questions have swirled around whether the software containerization technology would ever appear for Windows.
Today, those questions have been answered: Docker has announced it's working hand-in-hand with Microsoft to make Docker on Windows Server a reality -- and to upgrade Windows Server so that it can support the full gamut of Docker features.
According to a joint press release from Docker and Microsoft, Docker's port to Windows will involve four key components:
- Porting Docker Engine to Windows Server, with the help of Microsoft's Open Tech division, and in the same open source context as the core Docker project
- Getting the ported Docker Engine to work with future releases of Windows Server and eventually adding Docker-ized Windows Server apps to the Docker Hub
- Integrating Docker Hub into Microsoft Azure
- Contributing to Docker's open orchestration APIs
The seeds of this collaboration were planted earlier this year, when Microsoft announced work on managing Docker containers on Azure via Google Kubernetes.
"It was a joint meeting of the minds, for all of the obvious reasons," said Docker VP of marketing David Messina in a phone conversation. "It is, I think, our unified belief that a great way forward in terms of application development is to offer the best of both worlds" -- that is, Linux and Windows.
Aside from the announcement, Microsoft noted that an immediate benefit of this collaboration would be the "[contribution of] code to the Docker client for provisioning multi-container Docker applications on Azure," making it possible to deploy Docker apps into Azure from the Docker client. Docker and Microsoft plan to demonstrate this technology at the end of the month, on the second annual Docker Global Hack Day.
A long-term benefit, Messina noted, will make possible what he called "the potential for hybrid solutions," where a Docker-ized application can be distributed across both an on-premises cluster and in Azure. Messina emphasized that the fine points of this arrangement for a hybrid Azure environment would be Microsoft's responsibility.
A blog post by Jason Zander, CVP of the Microsoft Azure Team, described in detail the workings of such a mixed architecture. "With this new technology," he wrote, "millions of Windows developers familiar with technologies such as .Net, ASP.Net, PowerShell, and more will be able to leverage container technology," implying that applications written to use those Microsoft-centric technologies can be containerized. In the past, Windows has addressed some of the individual problems solved by Docker -- for instance, different editions of .Net can operate in parallel to avoid versioning issues -- but with Docker on Windows, many issues could be handled at once and with a unified voice.
The specific stumbling blocks to running Docker on Windows involve the lack of Windows support for key Linux features -- namespaces and cgroups -- that make containers possible.
To that end, Microsoft plans to lead an initiative to add the capabilities to Windows, though the details are still sketchy. A Microsoft spokesperson would only say that "the container capabilities will be integrated into Windows Server."
Debates have already flared over the addition of Docker to Windows. ZDNet's Mary Jo Foley initially believed that some or all of Docker-on-Windows functionality would be provided by a Microsoft Research technology code-named Drawbridge. It doesn't appear to be the case, though some of Drawbridge's goals are congruent with Docker's -- such as freeing applications from the need to run on a specific host -- and it could still be used to bolster Docker on Windows.
No timeframe has yet been announced for specific deliverables, but the gears are clearly in motion. As Messina put it: "The work begins now."