Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News Microsoft and Docker Preview Windows Server Containers

Microsoft and Docker Preview Windows Server Containers

This item in japanese


It is now possible to run Windows-specific software inside containers. Windows Server 2016 Technical Preview 3  is the first Windows release to support this technology. Windows Server Containers offer very similar capabilities to Linux containers, but in the context of the Windows ecosystem. Docker also released its own technical preview that showcases how it's able to manage Windows containers.

As stated by Arnaud Porterie, a Docker engineering manager, Docker's Linux and Windows feature sets will never be identical due to the operating systems' underlying differences. Nonetheless, most Docker commands work as expected with both container technologies. Dockerfiles and the docker build command are supported. On the other hand, docker push is not working on this release.

Microsoft built hcsshim, the execdriver that Docker uses to execute Windows Server Containers. An execdriver is the Docker piece that calls out to kernel code to execute containers. Each implementation is specific to an operating system, so the Docker daemon for Windows Server Containers doesn't run Linux images.

PowerShell can also manage Windows Server Containers. Currently containers created with one tool, e.g. PowerShell, are not seen by the other, i.e. Docker. The differences between the two tools explains this behaviour. Differences range from simple things, such as case sensitivity to more complex issues such as race conditions. This is not the desired behaviour for the long term, so things might change further down the road.

Microsoft is also introducing Hyper-V Containers, which act like Windows Server Containers inside a Hyper-V partition. Hyper-V Containers trade Windows Server Containers speed and efficiency for higher isolation and security. Multi-tenant systems are one scenario where Hyper-V Containers can be the preferable solution.

Microsoft - along with Docker, Google and other industry heavyweights - is a founding member of the [Open Container Initiative] (OCI). OCI which aims to create "open industry standards around container formats and runtime". Docker has donated runC, its container format and runtime to OCI. The open container specifications can be read at GitHub.

The simplest way to try out this new technology is to follow the quick start guide on running Windows Server Containers in Azure. Azure already provides a Windows Server 2016 Technical Preview 3 image. It is also possible to try out Windows Server Containers within an Hyper-V VM or within a Windows Server 2016 TP Core installation.

Windows Server Containers are still a work in progress, so it's worth to take a look at the known issues, such as slow container starts due to anti-malware solutions. The Windows Server Containers forum is the right place to ask questions, with Microsoft engineers answering some of them. Kristian Nese, CTO at Lumagate, is writing an article series on the topic of containers in the Windows world.

Rate this Article


Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Community comments

  • Growing Windows Docker support

    by Paul Stanton,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    Docker has emerged as a common API shared by Red Hat, AWS, Google, and now Microsoft, and for the first time should support Docker oriented infrastructure to be used to build Windows and Linux clouds (on-premise, Private, or Hybrid). This should be a boon to the industry, and customers. Another more immediate option for .NET developers will soon be available from Windocks, who has announced Docker Engine support for Windows Server 2012, and also provides SQL Server in Docker containers, which is a must for .NET developers. check it out at

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p