Microsoft released Windows Server Containers in technology preview on Aug. 19, along with the third technology preview release of Windows Server 2016. This means a Windows version of the Docker Engine, used to both build and establish the runtime for a Docker container, runs on the latest preview version of Windows Server 2016.
For the first time, .Net language programmers and Windows developers of all stripes will be able to package up their software in containers that can be run on a Docker-equipped Windows Server 2016 host.
Microsoft made the announcement in a blog posted by the Microsoft Server and Cloud Platform Team Aug. 19.
There are at least 5 million programmers who have been hearing about containers and casting envious looks at fellow programmers in the world of Linux servers, who have been running containers for two years. A Docker client that ran on Windows computers came out in April. But to do anything that resembles packaging software for use in a production setting required the availability of the Docker Engine as well. The Docker client can be used to tell a Docker server system what to do. But the Docker Engine is needed to assemble and put that system on a Windows host.
Containers are popular with developers of all persuasions because they make it easier to deploy software, move it from location to location, and execute updates to it. Docker capitalizes on a handful of standards in the marketplace to allow applications to become more moveable between servers.
[ Want to learn more about the Docker/Microsoft partnership? See Microsoft, Docker Intensify Container Collaboration. ]
Containers are prized for the speed with which they can be spun up, the protection they offer to isolate one application from another on a server, and for their lightweight nature. Windows developers have as much use for these properties as Linux developers. Now, both camps will be working with one set of tools and a highly similar set of commands to manage their software as it moves toward staging and production in the data center. The same principles hold true for applications that are destined to move off premises and run in a public cloud.
Microsoft said it has already integrated the use of Docker containers into its Visual Studio tool system, and it is in the process of ensuring Windows Server Containers run smoothly on its Azure cloud service.
At the same time, Microsoft's announcement that Docker Engine was available on Windows doesn't mean Windows containers have reached parity with their Linux counterparts. Docker VP of Enterprise Marketing David Messina said in an interview that the Docker Engine on Windows allows developers to pull code out of repositories and package it into a set of files as dictated by the Docker format, then prepare a runtime for the container that includes additional software needed to allow it to run.
The container may then be run on the third technical preview version of Windows Server 2016. But the container owner still can't push that newly containerized application out to a different host, the way a Linux container owner could, he said.
"The goal here is to expose the great Windows developer community to the functionality of Docker," Messina said. "It will allow developers to get their feet wet."
Pushing Windows Server containers to remote hosts can come later, as will other features of the Docker platform, such as Swarm, for building a cluster to run a mutli-container application.
Nevertheless, Microsoft and Docker engineering teams have completed their collaboration to modify about 180,000 lines of code in the Docker Engine to ensure it will run on Windows Server 2016, Messina said.
Microsoft also aired some details of its Windows Nano system, the lightweight version of Windows that's similar to CoreOS Linux and Red Hat's Atomic Host in the Linux world.