7. Agenda
• Windows Server 2016
• Building and deploying Windows Containers
• Differences to Linux
• Hyper-V Containers
• Docker API / Kubernetes / Swarm
• Future
16. Windows Hyper-V Containers
Windows Kernel
Windows Server 2016
SQL
Server
MSMQ
IIS /
ASP.NET
Windows Kernel
Windows Utility VM
Hyper-V
Docker Engine
17.
18. Windows Server Core
• Nearly Win32 Compatible
• Same behaviour of Windows
• Install all of the same tooling
19. Windows Nano
• Stripped down
• Smallest footprint
• 1/20th the size of Windows Server Core
• Only essential components
– Hyper-V, Clustering, Networking, Storage, .Net,
Core CLR
20. Windows Server Core => Ubuntu Linux
Windows Nano => Alpine Linux
Windows Server Core => Legacy Apps?
Windows Nano => Modern Apps?
31. PS C:> docker images
REPOSITORY TAG IMAGE ID CREATED
windowsservercore 10.0.10586.0 6801d964fda5 2 weeks ago
windowsservercore latest 6801d964fda5 2 weeks ago
nanoserver 10.0.10586.0 8572198a60f1 2 weeks ago
nanoserver latest 8572198a60f1 2 weeks ago
32. PS C:> docker run -it
windowsservercore cmd
Thank you to https://msdn.microsoft.com/en-
66. Windows Hyper-V Isolation
• Problem: Shared Kernel
• Solution: Super lightweight virtual machines
• Intel Clear Containers
• Ubuntu LXD
• IBM are working on something
67. PS C:> docker run -it -p 80:80
--isolation=hyperv app cmd
1) Windows starts 'Utility VM‘ and freezes state
2) Forks VM state, brings up a fresh second VM
3) Launches container on VM
68. Properties of Windows Utility VM
• Invisible to Docker and containers
• All writes are degraded
• Separate Kernel to host
• SMB file share to access host data
• In the future used for Linux containers?
69.
70. Now Available
• Windows 10 Insider Release
• https://msdn.microsoft.com/en-
us/virtualization/windowscontainers/quick_st
art/quick_start_windows_10
78. Host Fingerprinting
• Constraints based deployment
• Container is based on Nano Server, within
cluster, deploy to server capable of running
Nano Server (ie. Windows Server 2016)Host Fingerprinting