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” -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.