Containers have gained enormous popularity in the last year, providing highly scalable, lightweight virtualization...
for software components and complete applications. Despite the potential benefits, container technology has been largely Linux-based and focused on major platforms such as Docker. This has slowed container adoption in Windows environments, with administrators relying instead on familiar hypervisors and full-fledged VMs under Hyper-V.
This is poised to change with the impending release of Windows Server 2016, which promises support for Docker containers along with support for new Hyper-V containers. Let's take a closer look at the container support anticipated for Windows Server 2016.
Conventional Windows virtualization installs a hypervisor such as Hyper-V that abstracts the software from the underlying hardware. Once a hypervisor is running, an administrator can create individual, fully functional VMs -- each with its own operating system, application and other components. This allows almost any OS version and workload to operate simultaneously on the same system and then migrate across systems without regard for the underlying servers or data center infrastructure.
Containers provide an alternative approach to virtualization; first installing a host OS on a server, then installing a container layer or engine, and then compartmentalizing workloads into virtual container spaces. Each container shares the common OS kernel, libraries and binaries. This enables containers to eliminate resources wasted by redundant OSes that would be needed for traditional VMs. The result is lightweight virtualization that allows greater consolidation and cross-platform mobility than traditional hypervisor-based virtualization.
Windows Server 2016 should support two forms of container technology:
1. Docker containers through nested virtualization where Hyper-V would create a VM running a Linux OS, and then Docker would be installed atop the Linux OS to support Linux containers.
2. Windows Server 2016 is expected to directly support containers as either a direct container -- a Windows Server container -- or under Hyper-V as a Hyper-V container.
With Windows Server containers, the Docker engine will be able to create and support Windows containers directly on Windows Server; each container can share a common toolbox of Windows processes. Hyper-V containers more closely resemble nested virtualization in which Hyper-V first creates a VM and then the Docker engine creates a Windows container within the Hyper-V environment.
This might seem like a distinction without a difference, but the decision to invoke Hyper-V for containers can enhance isolation and improve security. Because containers share the common OS kernel and processes, if a container is compromised, malware in one container might pass to the underlying OS and potentially affect other containers. Hyper-V isolates containers and prevents activity in one container from passing back to the OS and affecting other containers.
As Windows Server 2016 evolves to support several container approaches, the issue of container management is also attracting serious attention. Tools such as Docker Machine can create Docker hosts in cloud facilities such as Microsoft Azure, on laptops and within data center servers. Docker Machine can then install and configure the Docker client, and can start, stop, restart, upgrade and configure Docker in Linux and Windows environments. A common tool will simplify container creation and management, helping organizations better use resource space and save management time.
Microsoft tries on Docker
Don't struggle with Docker host backups on Hyper-V
Containers and the cloud: How it works