Brian Jackson - Fotolia

How do Hyper-V and Windows Server 2016 containers differ?

Containers are revolutionizing the design of cloud and mobile apps. Tech expert Michael Otey explains the crucial differences between Hyper-V and Windows Server 2016 containers.

Windows Server 2016 containers come in two types: standard and Hyper-V. From a developer perspective, what is the difference?

Windows Server 2016 containers are essentially equivalent to Linux containers in that they share the same OS kernel. They're both lightweight and efficient, and are capable of running on bare metal. One does not need to have virtualization in order to run Windows Server containers. Conversely, Hyper-V, a new construct of Windows Server 2016 containers, is more secure. No other operating system allows anything like this.

When a Hyper-V container runs, that container spins up a specialized, lightweight, virtual machine for each container. The purpose of doing this is to isolate each container from the underlying host operating system. What that means is each virtual machine and each container have their own Windows OS kernel, resulting in a complete separation between the host and those containers that are running. It's more secure and has benefits for multi-tenant environments where there might otherwise be concerns about different tenants sharing the same host OS kernel. In this multi-tenant scenario, each container gets its own basic OS kernel that is never shared.

When an app is containerized, the app and the components needed to run it are combined into an "image." Containers are created from those images as needed. Multiple containers can all share the same image. That allows them to be started very quickly and with a minimal use of resources. What is important to realize is that these containers are completely interchangeable because they share the same base image.

What does make Hyper-V and standard Windows Server 2016 containers different is a command-line switch that can be set when running the container. In the case of someone running a container with Docker, specifying "-Isolation = Hyper-V Switch" makes it a Hyper-V container. If that switch remains off, it runs as a normal Windows Server container, although they share exactly the same image. The only thing that makes them different is when the switch is run.

Next Steps

Upgrading to Windows Server 2016? Here's what you need to know

SQL Server meets Microsoft Windows Server 2016 Hyper-V

How do Windows Nano Server and Windows Server Core differ?

Dig Deeper on Microsoft cloud and virtualization