Microsoft Nano Server tailored for container use
Nano Server originally appeared as a separate installation option for Windows Server 2016. An admin could use it as a smaller alternative to Server Core in VMs or containers. Since the release of Windows Server 2016, however, Microsoft refined and streamlined Nano Server to exclusively serve container-based environments. In the Windows Server version 1709, Nano Server is not available as an installation option. Now, an administrator deploys Nano Server as a container base OS image, and Nano Server must run as a container working within a container host OS, such as a Server Core or the full Windows Server -- also known as Server with Desktop Experience -- installation.
Containers provide small, stateless, fast-starting and isolated virtualized instances. Each container shares the underlying OS kernel. Because a container instance does not need a full OS, admins can create and deploy containers quickly and in bulk, and they can use fewer computing resources. Container technology has evolved quickly over the last few years, and it has gained traction among enterprise software developers for fast and highly scalable workload deployments. These deployments often use cloud-native application components, such as microservices-based applications.
Containers share the same OS; however, each container demands a suitable application operating layer, with libraries and components not in the shared OS. Generally, applications that need full compatibility with the .NET Framework should use Windows Server Core, while applications built for the cloud with .NET Core fit Nano Server.
How is Nano Server different from Windows Server?
Beyond the lightweight, container-based nature of Nano Server, the minimal OS differs from Server Core in several other ways. Unlike Server Core, Nano Server supports only 64-bit applications, tools and agents. Nano Server is headless, so there is no local logon or GUI capability. Admins manage Nano Server through common tools, such as Windows PowerShell, Windows Management Instrumentation (WMI) and Windows Remote Management. Desired State Configuration configures container settings at scale.
Microsoft removed Nano Server's server infrastructure role capabilities -- such as Internet Information Services (IIS) and domain name system -- with the Windows Server version 1709. An admin can still support those server infrastructure roles with the Server Core installation, leaving Nano Server to handle application containers in developer- or cloud-focused initiatives.
Nano Server cannot function as an Active Directory domain controller. Nano Server does not support features such as group policy, network interface card teaming, virtual host bus adapters, Best Practices Analyzer cmdlets and proxy server access to the internet, as well as popular management tools such as System Center Configuration Manager and System Center Data Protection Manager. Developers and IT professionals must weigh the compatibility and management needs of the container environment to determine whether Nano Server suits their needs.
Latest Nano Server features and limitations
The Windows Server release version 1709 adds additional differences to consider. For example, the 1709 Nano Server version is about 80 MB -- down from roughly 400 MB in the initial Nano Server release -- and is highly optimized for .NET Core applications.
Microsoft also updated Nano Server to run containers on Windows 10 IoT Core. This allows containers to run on small devices -- even internet-of-things devices -- that use Advanced RISC Machines and x86-x64 architectures.
Nano Server no longer includes tools such as PowerShell, .NET Core and WMI by default. An administrator must add PowerShell and .NET Core container packages when they build an application container.
Nano Server is no longer upgradable, which effectively removes Windows Update-type capabilities. When Microsoft updates Nano Server, the administrator uses Docker Hub to redeploy the container image. An admin uses Docker to troubleshoot containers on Nano Server.
Because Windows containers and the underlying host share the same kernel, the OS version of the container's base image must match the OS host. For example, if the underlying Windows Server Core version is automatically updated, but containers sharing that Server Core kernel are not rebuilt with a corresponding Nano Server image version, an OS version mismatch could occur. This potentially results in degraded or missing functionality. Microsoft does not support mismatched container and host OS versions.