Cloud and Datacenter Management Blog

Microsoft Hybrid Cloud blogsite about Management

Docker Linux Container running on Windows Server 2019 #Winserv #Docker #Containers

Leave a comment


In the following steps we install Docker for Windows enterprise on a Windows Server 2019 which is running on a hypervisor platform in this case VMware to run a Linux container in the Datacenter.

When you are on a virtualization platform like Hyper-V or VMware and you have installed de Virtual machine with Microsoft Windows Server 2019 Standard edition, you must make the virtual processors ready for virtualization.
(Nested Virtualization) otherwise you can’t install Hyper-V on VMware.

This is the error you get.

Enable this feature for virtualization to the guest OS for VMware.

When you run Microsoft Hyper-V you have to activate nested virtualization

It’s like this in PowerShell : Set-VMProcessor -VMName <VMName> -ExposeVirtualizationExtensions $true

Before you install Docker enterprise for Windows Server you have to install the Hyper-V Role and the Container Feature:

Hyper-V Role Installed

Containers Feature installed.

via Powershell is like this :

Install-WindowsFeature -Name Hyper-V,Containers -IncludeAllSubFeature -IncludeManagementTools

Now we have all the prerequisites installed on Microsoft Windows Server 2019, we can begin with Docker for Windows Enterprise via Powershell in Administrators modus :

Command: Install-Module DockerMSFTProvider

Then you type the following commands:

Import-Module -Name DockerMSFTProvider -Force

Import-Packageprovider -Name DockerMSFTProvider -Force

Command: Install-Package -Name Docker -Source DockerDefault

Now we have Docker EE version 19.03.5 installed for Windows Server 2019.

It’s ready for Windows Containers.

But we want to run linux containers,

Now that we have Docker installed, we need to make some changes to the default configuration to enable support for Linux Containers. This involves setting an Environment variable and creating a docker daemon configuration file.

—————————————————-

# Set LCOW_SUPPORTED Variable to 1 for enabled

[Environment]::SetEnvironmentVariable(“LCOW_SUPPORTED”, “1”, “Machine”)

 # Enable Experimental Features in Docker daemon.conf

$configfile = @”

{

    “experimental”: true

}

“@

$configfile|Out-File -FilePath C:\ProgramData\docker\config\daemon.json -Encoding ascii -Force

——————————————————

Because Linux Containers still need a Linux kernel, we need to deploy LCOW for it to run :

Invoke-WebRequest -Uri “https://github.com/linuxkit/lcow/releases/download/v4.14.35-v0.3.9/release.zip&#8221; -UseBasicParsing -OutFile release.zip

Expand-Archive release.zip -DestinationPath “$Env:ProgramFiles\Linux Containers\.”

Now you have to reboot the Server.

Ready for running Linux Containers.

To make Linux containers the Default you can set this environment setting :

[Environment]::SetEnvironmentVariable(“LCOW_API_PLATFORM_IF_OMITTED”, “linux”, “Machine”)

Here you can read how to Pull docker Linux images to your Docker Host on Windows Server 2019

What is handy to use is Microsoft Visual Studio Code with the Docker Extension.

Wish you all the Best with Deploying Containers.

Author: James van den Berg

I'm Microsoft Architect and ICT Specialist and Microsoft MVP Cloud and Datacenter Management Microsoft MVP Windows Insider Microsoft Tech Community Insider Microsoft Azure Advisor

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.