为 Windows 中的 Docker 容器增加 GB 的 Ram

Incrementing GB of Ram for Docker Container in Windows

我正在按照本教程 https://docs.docker.com/docker-for-windows/#docker-settings-dialog 在 windows 中安装 docker。我被困在资源选项卡下的设置部分。我对资源的看法并未显示它在 link 上的显示方式。有没有办法增加我的 Ram,这样我就可以让 ELK 达到 运行。我使用 Hyper-V 安装了 Docker 桌面应用程序。

这是我在设置中看到的。

我应该看到但没有看到的东西。

尽管您提到使用 Hyper-V,但由于您的屏幕截图(特别是 WSL 集成选项卡),我怀疑您可能 运行 Docker WSL2 模式下的桌面,而不是 HyperV 模式。 (据我所知,在许多情况下,WSL2 是更新、更快的选择)。

根据该假设,要更改 WSL 2 VM 中的 RAM,您必须使用 VM 设置创建一个 C:\Users\username\.wslconfig 文件。 this page 中描述了详细信息,实际上链接到您提到的页面。

这是 .wslconfig 文件的示例:

[wsl2]
memory=9GB # Limits VM memory

请注意,这适用于 所有 WSL2 虚拟机(我猜它们被称为发行版?),我不确定这是否是正确的答案,因为 Docker 似乎自己生产 2 个发行版,加上您拥有的任何其他发行版(参见 wsl --list)。您想为 所有 发行版增加 RAM 吗?

然而,引用this page

WSL 2's memory usage grows and shrinks as you use it. When a process frees memory this is automatically returned to Windows.

这听起来像是 .wslconfig 内存设置是最大大小,仅在需要时分配,因此我假设为所有 WSL 发行版设置它不会导致所有发行版都膨胀到发行版启动后立即 9GB,除非这些发行版试图使用所有内存。

他们接着说:

However, as of right now WSL 2 does not yet release cached pages in memory back to Windows until the WSL instance is shut down. If you have long running WSL sessions, or access a very large amount of files, this cache can take up memory on Windows. We are tracking the work to improve this experience on the WSL Github repository issue 4166

我在大型 ML 作业中遇到过内存膨胀问题,所以需要注意一些事情。

因此,.wslconfig 更改似乎对我有用。另一个对我有帮助的选择是通过 .wslconfig 增加 swap 大小,因为我的机器内存有限。