Docker windows容器内存限制

问题描述 投票:14回答:7

使用Docker Desktop for Windows的docker windows容器是否具有默认内存限制?我有一个应用程序,当我在容器中运行时崩溃,但当我尝试将--memory 2048mb参数指定为docker run命令时,它似乎运行正常。至少在以前崩溃的情况下。这给我的印象是存在默认内存限制,但我在文档中找不到它。所以我的问题是内存限制,如果它是记录的位置?

docker docker-for-windows docker-desktop
7个回答
16
投票

根据Docker for Windows Github问题(https://github.com/moby/moby/issues/31604)的讨论,当Docker for Windows在Windows 10下运行时,它实际上使用的是Hyper-V隔离模型(并且在Win 10场景中无法访问流程模型)。

在该隔离类型中,您的容器在轻量级VM中运行,该VM具有默认限制,并且为1 Gb。因此,如果你想拥有更多内存,你应该使用-m param。


7
投票

惊喜!惊喜!

我的主机上有32Gb RAM,但我只能看到Windows容器的1Gb RAM:

D:\>systeminfo | findstr "Memory"
Total Physical Memory:     1,023 MB
Available Physical Memory: 634 MB
Virtual Memory: Max Size:  1,023 MB
Virtual Memory: Available: 674 MB
Virtual Memory: In Use:    349 MB

D:\>wmic OS get FreePhysicalMemory /Value
FreePhysicalMemory=648340

D:\>wmic computersystem get TotalPhysicalMemory
TotalPhysicalMemory
1072742400

图像的相同限制来自:

  • 微软/ windowsservercore
  • 微软/ nanoserver

我认为它来自--isolation=hyperv模式的Hyper-V层,其中容器是某种轻量级VM。

您可以通过docker inspect命令检查用于现有容器的隔离模式。


0
投票

我想可能是你有太多死容器。也许尝试docker rm $(docker ps -a -q)删除所有已退出的容器,然后重试运行您想要的容器。


0
投票

没有默认限制。记录的here


0
投票

我们最近有一个非常相似的问题和问题,因此在Windows上对docker内存进行了一些实验:

它似乎在很大程度上取决于您的配置。如果你运行docker容器,让我们称之为hyper-v模式,内存限制似乎约为512mb。您可以使用“-m”选项扩展给定内存以进行docker run。分配2 GB不是问题。

不幸的是,它与Windows服务器容器完全不同。起始内存限制为1gb,您可以使用“-m”选项减少它。我们没有找到增加这些容器内存的方法。

您如何看待模式/隔离级别:

docker info -f "{{ .Isolation }}"

hyperv - hyper-v模式;进程是Windows服务器

一些附加说明:很难找到输出容器中可用内存的命令。我们创建了自己的性能测试,以获得可靠的结果。


0
投票

运行Docker QuickStart终端

删除默认的vm:

docker-machine rm default

重新创建默认vm:根据您的要求,您可以更改以下不同参数的值。

docker-machine create -d virtualbox --virtualbox-cpu-count=2 --virtualbox-memory=4096 --virtualbox-disk-size=50000 default

然后做

docker-machine stop
exit

现在再次打开Docker快速启动终端

现在,当您运行并创建一个新容器时,默认情况下将有更多ram内存。但要小心它将删除所有拉出的docker图像。


0
投票

如果使用Linux容器

对我来说,在使用Docker Desktop的Windows 10上,我无法使用--memory=--cpus=选项。这是有用的:

  1. 右键单击系统托盘中的Docker鲸鱼,然后选择“设置”
  2. 转到左侧的“高级”
  3. 设置容器可用的CPU和内存量。

enter image description here

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