I am running a Windows 10 in VMWare virtual machine with nested virtualization enabled.
Physical host machine has 32 Gb RAM. And guest Windows 10 is given 10 Gb RAM.
At least 8 Gb is available to guest Windows 10 while the issue happens.
OS: Windows 10 Pro
Edition: Professional
Id: 1703
Build: 15063
BuildLabName: 15063.0.amd64fre.rs2_release.170317-1834
docker version output:
Client:
Version: 17.03.1-ce
API version: 1.27
Go version: go1.7.5
Git commit: c6d412e
Built: Tue Mar 28 00:40:02 2017
OS/Arch: windows/amd64
Server:
Version: 17.03.1-ce
API version: 1.27 (minimum version 1.24)
Go version: go1.7.5
Git commit: c6d412e
Built: Tue Mar 28 00:40:02 2017
OS/Arch: windows/amd64
Experimental: true
The issue:
Command docker run -ti -m 3g microsoft/nanoserver cmd
works completely fine.
But docker run -ti -m 4g microsoft/nanoserver cmd
cannot start and says
C:\Program Files\Docker\Docker\Resources\bin\docker.exe: Error response from daemon: container ad5daea5af71e433efbe4ced2
7e3553c009be78f2cd2ea5ee9cf63798fdc890e encountered an error during CreateContainer: failure in a Windows system call: A
connection could not be established with the Virtual Machine hosting the Container. (0xc0370108) extra info: {"SystemTy
pe":"Container","Name":"ad5daea5af71e433efbe4ced27e3553c009be78f2cd2ea5ee9cf63798fdc890e","Owner":"docker","IsDummy":fal
se,"IgnoreFlushesDuringBoot":true,"LayerFolderPath":"C:\\ProgramData\\Docker\\windowsfilter\\ad5daea5af71e433efbe4ced27e
3553c009be78f2cd2ea5ee9cf63798fdc890e","Layers":[{"ID":"05ed9e7f-50fc-5547-b50f-0b3bd04b7c46","Path":"C:\\ProgramData\\D
ocker\\windowsfilter\\87ff91487e924ad07948b9d75921a6e5ff836000a0973fb3a9f155ba1c6f9c56"},{"ID":"2023745b-c852-5a0b-a1c9-
d6e583a23714","Path":"C:\\ProgramData\\Docker\\windowsfilter\\aede6a6a41c139f7cf2648a52b9bac0d938da809ca5cc66c111cab4cac
9cb450"}],"MemoryMaximumInMB":4096,"HostName":"ad5daea5af71","MappedDirectories":[],"SandboxPath":"C:\\ProgramData\\Dock
er\\windowsfilter","HvPartition":true,"EndpointList":["3eac4fd9-2ac4-4575-bfbd-a2e46b5aba70"],"HvRuntime":{"ImagePath":"
C:\\ProgramData\\Docker\\windowsfilter\\87ff91487e924ad07948b9d75921a6e5ff836000a0973fb3a9f155ba1c6f9c56\\UtilityVM"},"S
ervicing":false,"AllowUnqualifiedDNSQuery":true}.
I do know that in Windows 10 only hyperv isolation is possible, so I was thinking maybe it is some HyperV engine setting that I should tweak to enable more than 3Gb memory to be possible for a container which runs in hyperv?
I just tested this on a couple of systems in house and while we’re still investigating, it seems that this is likely a resource issue.
I can create containers using the - 4g version, but only as long as I have enough available memory.
When I tried to create one that would put me past the amount of Ram available - I got either timeout, or failed to connect errors similar to yours. The -m option is actually the Minimum server memory, so it looks like it is actually pre-allocating the memory and keeping it reserved until the containers are stopped. So if I run docker run -ti -m 4g microsoft/nanoserver cmd 4 times, it will use 16gb of ram.
Please use a docker PS command to see what other containers are running. Try stopping or removing one or two of the containers, then trying the command again. It worked for me here on my local machine.
I was able to obtain a physical machine with 32 Gb RAM with Windows 10 with latest updates and all.
Clean install of docker, and I get same result - does not work with -m 4g.
Right after command start Committed size in task manager goes up by 4 Gb, and vmmem process with 4 Gb commit size also appears, but I still get same error.
All other containers are not running at the moment of command and even more so - I deleted all the containers before executing the command.
Also I cannot confirm the resource issue as I have 28 Gb Available RAM and Commited is 6/37 Gb before the command starts.
Can I provide any more info to help you out in investigating?
Diagnostic upload id is: E5BB9482-3B4D-4744-8BD2-05932B2311E4/2017-05-23_23-00-27
I dont know if you have access to it or not.
Update: Adding docker version output:
Client:
Version: 17.03.1-ce
API version: 1.27
Go version: go1.7.5
Git commit: c6d412e
Built: Tue Mar 28 00:40:02 2017
OS/Arch: windows/amd64
Server:
Version: 17.03.1-ce
API version: 1.27 (minimum version 1.24)
Go version: go1.7.5
Git commit: c6d412e
Built: Tue Mar 28 00:40:02 2017
OS/Arch: windows/amd64
Experimental: true
And OS data:
OS: Windows 10 Pro
Edition: Professional
Id: 1703
Build: 15063
BuildLabName: 15063.0.amd64fre.rs2_release.170317-1834