Microsoft today published the third technical preview of Windows Server 2016 and System Center 2016. As promised, this is also the first version of Windows Server to natively support Windows Server Containers — that is, Microsoft’s version of Linux containers that can be managed both through Powershell and Docker’s command-line tools.
Microsoft is clearly aware that developers are asking for container support. As Microsoft general manager for cloud platform marketing Mike Schutz told me, the company wants to help both IT professionals and developers who are now under more pressure than ever to quickly bring apps from the development phase to testing and deployment. Thanks to the overall momentum that containers are currently enjoying, developers want to be able to use them, so Microsoft also has to give IT the tools to manage them.
Schutz argues that the Windows Container tooling with feel “very familiar for Docker developers when they use Powershell — and Powershell users will feel very comfortable there, too.” To add a bit of confusion, though, containers created with Powershell can’t be managed with Docker (and visa versa).
Docker and Microsoft are partnering to bring both Windows Server and Docker containers to Windows, and allowing developers to manage them with the standard Docker tools. That’s obviously a major win for Docker but also for developers who have to deploy their applications on Windows Server. Until Microsoft jumped on board, after all, Docker was mainly a Linux technology.
It’s worth noting, though, that you won’t be able to take a Linux container and run it on Windows Server (or visa versa). As Microsoft’s Azure CTO Mark Russinovich noted in a blog post earlier this week, “Linux containers require Linux APIs from the host kernel and Windows Server Containers require the Windows APIs of a host Windows kernel, so you cannot run Linux containers on a Windows Server host or a Windows Server Container on a Linux host.” What you can do, however, is use the same Docker client to manage both kinds of containers.
Microsoft is also working on a second container deployment option for Windows Server: Hyper-V Containers. These types of containers will offer higher isolation between containers by running their own copy of the Windows kernel and having memory assigned directly to them.
In a way, that makes them somewhat more akin to traditional virtual machines (which unlike containers, include a copy of the operating system). Docker will be able to manage both Hyper-V Containers and Windows Server Containers. Support for Hyper-V containers on Windows Server, however, won’t arrive until the next preview.
To support these containers, Microsoft is also launching updated Docker tooling for Visual Studio today.
As Schutz noted, many of the container technologies, as well as some of the software-defined networking technologies the company is launching with this preview, were built from the same technologies the company developed for its Azure platform.
Other new features in this Windows Server preview include some new features for the lightweight Nano Server option, including a new emergency management console for fixing networking configuration, as well as new security features to better isolate virtual machines from the host operating system. You can find a full list of new features here.