Docker无法在Windows上启动:没有足够的内存来启动docker

问题描述 投票:18回答:8

我想在Windows上开始使用Docker。我的机器有4GB内存和1.9GHz - 2.5GHz Intel i5处理器,运行Windows 10 Pro x64。我知道这些并不是强大的规格,但我原以为我应该可以运行Docker?

但是,下载了Docker后,我收到错误消息:

没有足够的内存来启动docker

我已经看到各种论坛帖子和github问题,并遵循我可以看到的所有建议,例如修改Docker中的设置,我试过这些:

enter image description here

他们还提到了更改Hyper-V VM的设置,但是,这似乎被删除并在每次尝试启动时使用Docker指定的设置重新创建。我尝试了2048MB,1792MB,1536MB,1280MB和1024MB的RAM,所有这些都失败了。

我还可以做些什么?当然我可以在我的机器上以某种形式运行docker?注意:我已关闭所有非必要的后台应用程序。对于什么似乎是一个相当普遍的问题似乎没有很多其他建议,其中给定的解决方案不起作用?

windows docker virtual-machine hyper-v
8个回答
34
投票

我也遇到了同样的问题。尝试了从提供动态内存到启用和禁用Hyper V等等所有功能。但尽管如此,我没有成功。

然后我尝试了这些步骤

Docker无法在Windows上启动:没有足够的内存来启动docker:

1)在System Tray菜单中,右键单击Docker图标

2)选择切换到Windows容器...

3)重启系统。

在重新启动docker状态之后你应该显示为:Docker正在运行

希望这可以帮助!

PS:正如rfay所说,切换到大多数用户的Windows容器之后,切换回Linux容器应该可以正常工作。


更新(2019年5月1日)

尽管有上述方法,但如果您仍无法在Windows机器上启动docker,请尝试以下操作:

  • 来自微软官方网站的Download RAMMap
  • 打开应用程序并选择Empty菜单
  • 从子菜单列表中选择第一个选项Empty Working Sets
  • 现在按F5刷新它

现在尝试运行docker,我相信这应该可行。祝好运!

RAMMap Application


2
投票

如果您在窗口上并收到此错误,请转到“搜索”框

#1 type Hyper-V Manager 
 Click on it,
 a window like attached screenshot open,

enter image description here

#2 Select  MobilinuxVM(normally same name if running windows docker)
#3 Right click and open - Setting 
    2 The second window will open(setting for MobiLinux) i.e to the screenshot.
#4 Go to Memory Tab in left Pane.
#5 click on a dynamic checkbox and set minimum value to some lower amount say 512, and max value to the desired one,
#6 apply 
now it will start running as well after few minutes take the amount it required as well.

2
投票

在“设置”中,我重置为出厂默认设置。并重新启动笔记本电脑。它适合我


2
投票

您是否在HyperV设置中启用了NUMA跨越?如果没有启用它,我打赌这将解决您的问题。

默认情况下,Windows Server启用NUMA跨越,这提供了最大的灵活性,因为虚拟机(VM)可以访问和使用任何NUMA节点中的内存。但与强制VM在与处理器核心相同的NUMA节点上使用内存相比,它可能导致性能降低。

通过禁用NUMA跨越,可确保VM在同一NUMA节点中使用内存和处理器核心,从而提供最佳性能。这应该只更改一次,如果作为管理员,您对NUMA以及禁用的影响感到满意,并且如果您有一些额外的管理套件可以帮助确保最佳配置。

要配置NUMA跨越,请打开Hyper-V设置并选择NUMA Spanning选项并禁用它,我相信它会得到解决;我在这个问题上挣扎了一个星期,并通过禁用NUMA解决了这个问题。

我确信通过在Hyper-V管理器中禁用NUMA可以将其标记为已解决。


2
投票

这不是RAM的问题。它是docker分配的磁盘内存。 这意味着没有足够的空间让docker创建图像或任何其他与docker相关的操作。

打开泊坞窗设置>>高级>>磁盘映像最大大小

增加此大小并应用更改。

它将自动重启,然后您就可以开始了。

enter image description here


1
投票

我也有同样的问题。也许你在Hyper-v中有其他虚拟机,其他虚拟机也需要内存。请停止所有其他Hyper-v虚拟机并再次测试。对我来说工作My Hyper-v Manager

enter image description here


1
投票

我通过右键单击泊坞窗托盘图标选择设置解决了这个问题,然后点击了“高级”部分。

然后我将内存从默认的2048降低到1536并且像魅力一样工作。另一个选择是尝试切换到Windows容器然后重新启动计算机并切换回Linux容器。

下面是我的Docker设置,高级选项卡打开。请注意,内存是1536,我的笔记本电脑有4GB Ram。

enter image description here

此外,虚拟机“MobyLinuxVM”正在运行,如下所示;

enter image description here

我希望有一天能帮助某人,即使是迟到的答案:)


0
投票

当我遇到这个问题时,我在C:\ Program Files \ Docker \ Docker \ resources中修改了Docker安装的资源文件夹中找到的PowerShell脚本MobyLinux.ps1。基本上我将$ CPU的值强制为2,将$ Memory强制为512,这对我的开发盒的资源有限!

enter image description here

此时,当Docker在Hyper-V中删除MobyLinuxVM实例并从PowerShell脚本重新创建它时,它现在使用我的值:enter image description here

这次VM保持稳定,Docker成功从Windows Containers切换到Linux Containers:

enter image description here

希望这有助于某人。


0
投票

我降低了我的内存并交换到最低的磁盘映像大小和32gb,它最终启动时没有切换到Windows容器或不得不重新启动。

© www.soinside.com 2019 - 2024. All rights reserved.