Microsoft has touted several new features of Windows Server 2019. The last few days have seen multiple release announcements describing features Microsoft wishes to highlight. Containers continue to be one of the features in the spotlight. In fact, container support is hyped by both Microsoft and Docker as part of their partnership.
The first few signs of this were in Windows Server 2106. We also saw a very nice integration in newer builds of the Windows 10 desktop OS. Because of this, I was super excited to see how the integration would work in Windows 2019.
I was surprised to see the installation process documented for newer versions of Windows Server 2016 seemed to be the same process for Server 2019 build 17623 due to the hype of Docker and Kubernetees support in the platform.
Based on a Microsoft quick-start guide, I was able to create a PowerShell Script to install Docker. The code has since been uploaded to my github page here (https://github.com/nathaniel-avery/WS2019_Container_Enable_v1PS).
The process is fairly simple. It consists of downloading the DockerMsftProvider from the PowerShell Gallery. The module has a prerequisite called NuGet, so that gets installed too. Finally, Docker is installed. A reboot is required once everything finishes. The video below demonstrates execution of the script on Windows Server 2019.
*** Note *** These steps enable Windows Containers only. Additional steps are required to run Linux containers. My initial reading and experimentation shows it's not as easy to use Linux containers on Server as it is on Windows 10. I'm considering exploring that topic in a future blog post. Moreover, it will not automatically run Windows containers where the versions do not match.
Double check that the Docker service starts after the first boot, otherwise you may receive an error.
At the time of this article, the version installed was 17.06.2-ee-7
C:\Users\Administrator>docker version Client: Version: 17.06.2-ee-7 API version: 1.30 Go version: go1.8.7 Git commit: 925df35 Built: Fri Mar 16 22:29:37 2018 OS/Arch: windows/amd64 Server: Engine: Version: 17.06.2-ee-7 API version: 1.30 (minimum version 1.24) Go version: go1.8.7 Git commit: 925df35 Built: Fri Mar 16 22:39:05 2018 OS/Arch: windows/amd64 Experimental: false
I'll admit that I was surprised that he install wasn't easier. I'm also surprised by the fact that Windows version compatibility and Linux weren't addressed. Why are these features not already in the box? It seems odd to have to download docker after all the fuss made about it. What I expected was to find a "container host" role similar to the one offered for Hyper-V. It seems that either a feature or role could have sub-components for selecting different support options and kubernetees. This is still an early build. It's entirely possible that the installation of docker will be better integrated. I'll continue to look out for updates from Microsoft and Docker on the situation.
Windows Containers on Windows Server. (n.d.). Retrieved March 28, 2018, from https://docs.microsoft.com/en-us/virtualization/windowscontainers/quick-start/quick-start-windows-server
Introducing Windows Server 2019 – now available in preview. (n.d.). Retrieved March 28, 2018, from https://cloudblogs.microsoft.com/windowsserver/2018/03/20/introducing-windows-server-2019-now-available-in-preview/
Using Windows Server Containers in Kubernetes. (n.d.). Retrieved March 28, 2018, from https://kubernetes.io/docs/getting-started-guides/windows/
Frank, B. H. (2018, March 20). Windows Server 2019 will feature Linux and Kubernetes support. Retrieved March 28, 2018, from https://venturebeat.com/2018/03/20/windows-server-2019-will-feature-linux-and-kubernetes-support/
Windows Container Version Compatibility. (n.d.). Retrieved March 28, 2018, from https://docs.microsoft.com/en-us/virtualization/windowscontainers/deploy-containers/version-compatibility