Docker Community Forums

Share and learn in the Docker community.

Not enough memory to start Docker

sysinternals RAMMap tool can be used.

See https://blogs.technet.microsoft.com/mspfe/2014/02/05/freeing-memory-for-hyper-v-vms-on-windows-88-1/

2 Likes

Got this error on a Windows 10 Pro 4GB system with Docker 1.12.0-rc2. The error went away after:

  1. In Docker’s system tray->Settings->Advanced moved Memory slider from 2048 to 1280.

  2. Rebooted

IMHO, Docker installer needs to use configuration settings that will work on the system as opposed setting up a non-working config.

7 Likes

Thx for your feedback.

@bsalita the amount of free memory is not the amount of the amount of memory we can set the hyper-v VM to. Detecting that, take some time and slow down the startup time of Docker.

As you suggested, I’m pretty sure we can improve and use a more appropriate default for device with memory constraints.

thx

1 Like

@jeanlaurent I had the same issue as @bsalita but 1k was still too much with PyCharm running. In HyperV manager I made the RAM utilisation dynamic with minimum 64 MB. That worked well for me. You could try to do the same by default. Start with just enough RAM to boot the Linux and have the slider in the settings section only change the the maximum threshold. I would also add a tick box asking users if minRAM=maxRAM=slider position.

2 Likes

are we saying that turning down the memory slider helps docker memory startup problems?
or are these docker startup memory problems caused by hyper-v?

I normally start docker from my cmd terminal or sometimes from my win git-bash terminal. Are there switches that can be passed when calling the win docker exe? like a memory one?

thank you in advance. -Rob

Follow up:
Switching cpu and mem to min allowed me to get docker restarted
Cleaned up containers with "docker ps -a"
Switching back: Docker now runs with max 2 cpu’s and 2048 memory settings

One currently cannot use the system tray -> Settings… to change the memory allocation. A known bug prevents that because the controls are disabled. The only way to change the memory allocation is to do this in Hyper-V on the MobyLinuxVM. You must stop the VM to change this. However, this causes all kinds of stuff to break in Docker, and you must then restart Docker. However, restarting docker causes the memory setting to revert back to 2GB!

1 Like

I’ve filed an internal issue for that.

How’s it working now ? I just started trying to wrap my head around Docker, and how I can apply the use of this technology.

Hi ,
I am facing same issue.
can u tell me how to change memory settings?

in Hyper V manager ,able to see MobyLinux.
what should be the next steps?

Appreciate your help

it worked, but weird… decreasing memory allocation worked …

1 Like

try switching to Windows containers

I had this problem and decreasing memory allocation worked… Tks guys

1 Like

Changing the memory slider under docker application (that is by right hand clicking the docker icon with in the notification area/ tray) settings- advanced solved this issue

1 Like

I have changed the memory and tried for first time it worked fine and docker was started, but while trying second time again i started to face space issue… but memory setting is low as previous. Need help.

Weird reducing memory worked.

1 Like

Same happened wid me…Try increasing memory and again setting it to lower level…Its funny but it works for me many times. :laughing:

2 Likes

Have you enabled NUMA spanning in your HyperV settings? if not enable it i bet that will solve your issue.

By default, Windows Server enables NUMA spanning, which provides the most flexibility as virtual machines (VMs) can access and use memory in any NUMA node. But it may result in lower performance compared to forcing VMs to use memory on the same NUMA node as the processor cores.

By disabling NUMA spanning, you ensure that VMs use memory and processor cores in the same NUMA node, giving the best performance.
This should only be changed once, if, as an administrator, you feel comfortable with NUMA and the implications of disabling and also if you have some additional management suite that can help ensure best configuration.

To configure NUMA spanning, open the Hyper-V Settings and select the NUMA Spanning option and disable it, I am sure, it will get solved; I struggled with the issue for a week and resolved it by disabling NUMA.

I am sure this would be marked as resolved by disabling NUMA in Hyper-V Manager.

1 Like

let me try wid this…Thanks :slight_smile:

Hi! Decreasing the memory allocation from Docker - Settings - Advanced settings from 2048 Mb to 1536 Mb did the job. Weird but it works! :slight_smile:

In case “Not enough memory to start Docker” kicks in when switching from Windows to Linux containers, please see https://stackoverflow.com/questions/52904104/how-to-reduce-default-vm-memory-for-docker-linux-containers-on-windows which explains how to modify Docker’s memory defaults manually.