When Microsoft announced late last year it was bringing Docker's software containerization technology to Windows, the big question was: When?
The short answer: Real soon now.
On the official Azure blog, Microsoft described how it plans "to bring Windows Server to the Docker ecosystem," as well as enhance Azure support for Docker via an implementation of the Docker Engine on Windows Server named Windows Server Containers.
In another post on Microsoft's Server & Cloud blog, the company announced it "will be unveiling the first live demonstration [of Windows Server Containers] in a few weeks, starting at the BUILD conference."
The first and most crucial component of all this is having the Docker Engine running on Windows. Microsoft has already committed to do this as an open source project, executed in conjunction with Docker, Inc. But the containers themselves are also crucial, and Microsoft says it's working on making container images for Windows Server applications "available in the Docker Hub alongside the 45,000 and growing Docker images for Linux already available."
Late last year, Microsoft kicked off the first stage of its embrace of Docker with a Windows-native edition of the Docker CLI. This allowed Windows users to administer Docker containers without having to fire up a VM or a remote command line. Support for the Docker Engine itself on Windows, though, was scheduled for some later time.
It also wasn't clear how Microsoft intended to do that, since the Windows kernel didn't directly support features along the lines of the ones Docker used in Linux -- namely, namespaces and cgroups.
But another announcement from Microsoft today has shed some light on how that might work. It's unveiling a new edition of Windows Server named Nano Server, which Microsoft describes as " a purpose-built operating system designed to run born-in-the-cloud applications and containers."
Nano Server is reminiscent of Microsoft's existing Windows Server Core product in that it strips Windows Server as bare as it can get. "[We] removed the GUI stack, 32 bit support (WOW64), MSI and a number of default Server Core components," said Microsoft in a blog post describing the new product. "There is no local logon or Remote Desktop support. All management is performed remotely via WMI and PowerShell."
Networking, storage, Hyper-V, clustering, .Net, and the Core CLR are included, according to ZDnet's Mary Jo Foley, but Microsoft claims the VHD used to store an instance of Nano Server is 93 percent smaller than one for a conventional Windows Server VM.
Microsoft hasn't gone into detail about what's been added to Windows Server to make compatible with the Docker container model. If they're included in a product as compact as Nano Server, it's likely those changes are low-level enough to be part of the Windows kernel, rather than added by way of a kernel-level service.