Docker Community Forums

Share and learn in the Docker community.

Installing Docker on Windows Server 2016 without Desktop Experience


(Linus) #1

Hi,

First thanks for anyone who helps. I am trying to install Docker CE Edge downloaded from https://store.docker.com/editions/community/docker-ce-desktop-windows into Windows Server 2016. The exact version should be 17.06.0-ce-rc2

If I install it to Windows Server 2016 (Desktop Experience), everything works fine. I tried to install it on Windows Server 2016 without Desktop Experience, I get the error:

PS C:\Users\Administrator> & '.\Downloads\Docker for Windows Installer.exe'
PS C:\Users\Administrator> [16:27:29.790] [InstallHandler] No d4w installation found
[16:27:29.806] [InstallHandler] Using embedded package
[16:27:29.962] [InstallWorkflow] Using package: res:d4w
[16:27:29.977] [InstallWorkflow] Downloading
[16:27:32.771] [InstallWorkflow] Extracting manifect
[16:27:32.862] [InstallWorkflow] Manifest extraction failed
Exception type: System.TypeLoadException, Exception message: Requested Windows Runtime type 'Windows.Data.Json.JsonValue' is not registered., StackTrace:
   at System.StubHelpers.StubHelpers.GetWinRTFactoryObject(IntPtr pCPCMD)
   at Windows.Data.Json.JsonValue.Parse(String input)
   at LightweightInstaller.Manifest.FromJson(String json)
   at LightweightInstaller.ExtractManifestStep.<DoAsync__26.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at LightweightInstaller.InstallWorkflow.<HandleD4WPPackage>d__19.MoveNext()
[16:27:32.864] [InstallWorkflow] Installation failed
Exception type: System.TypeLoadException, Exception message: Requested Windows Runtime type 'Windows.Data.Json.JsonValue' not registered., StackTrace:
   at System.StubHelpers.StubHelpers.GetWinRTFactoryObject(IntPtr pCPCMD)
   at Windows.Data.Json.JsonValue.Parse(String input)
   at LightweightInstaller.Manifest.FromJson(String json)
   at LightweightInstaller.ExtractManifestStep.<DoAsync__26.MoveNext
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at LightweightInstaller.InstallWorkflow.<HandleD4WPPackage>d__19.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at LightweightInstaller.InstallWorkflow.<ProcessAsync>d__18.MoveNext()

It seems like Windows Server 2016 without Desktop Experience doesn’t have Windows Runtime registered to handle Windows.Data.Json.JsonValue. Any help would be greatly appreciated.


(Funky81) #2

You cant using Docker CE on Windows Server with Windows Experience features. Since it use GUI to configure the docker itself.

Must use Docker EE for Windows Server


(Linus) #3

Sorry, do you mean that I can’t use Docker CE on Windows Server without Desktop Experience?

I use Docker CE because I tried Docker EE but can’t seems to get Linux containers to run on Docker EE.


(Funky81) #4

Yes. This is the known limitation Docker for Windows Server. But as you can see, Linux cant run Windows container as well


(Stefan Scherer) #5

Use the Docker EE installation as described in https://store.docker.com/editions/enterprise/docker-ee-server-windows, this works on Windows Server Core Edition.
Docker EE 17.06 will be available in a few weeks.

If you want to try out CE Edge features in advance, still use the installation steps as above and then replace dockerd.exe + docker.exe eg. with this script https://github.com/StefanScherer/docker-windows-box/blob/master/scripts/update-docker-ce.ps1

Once Docker EE is available just install the 17.06 EE with Install-Package -Name docker -ProviderName DockerMsftProvider -Verbose -Update and you are back on EE.


(Leachdaniel) #6

Wondering if anyone knows of any updates on this. 17.06 is stable and documentation references it, but I’m not seeing a way to use it with Windows Server 2016.


(Mriezebosch) #7

Will this make it possible to run Linux and Windows containers side-by-side on Windows Server Core? Having a hard time figuring out if Hyper-V is actually working though the feature is installed. The normal installation of Docker CE (stable, using chocolatey) complains that it is unable to configure Hyper-V.


(Rainabba) #8

Windows Server 2019 Preview 1803 is begging for this, but I’m hitting the same challenge.


(Rainabba) #9

This looks promissing: https://docs.microsoft.com/en-us/virtualization/windowscontainers/manage-docker/configure-docker-daemon


#10

So is there any way at all to use Linux containers (via Hyper-V) on Windows Server 2016 Core Server with just the basic GUI? Nano Server even better.

The EE version installed via the command line using “Install-Module” and “Install-Package” does not install DockerCli.exe, which has a “-SwitchDaemon” parameter to do this. Ironically the only installer option that does provide this command line utility requires a GUI.

Is there some other way to get DockerCli?


(Artisticcheese) #11

Docker cli is installed with Docker-EE. What do you mean you don’t have it? Can you execute docker ps once docker-EE is installed? If you are then you have docker CLI.