如何减少Windows上Docker Linux容器的默认VM内存

Oli*_*der 3 hyper-v docker windows-10 docker-machine

情境

  • Windows 10专业版
  • 在Windows容器模式下运行的Docker 18.06.1-ce
  • 主机系统上4GB的可用内存
  • 使用Hyper-V虚拟机

问题

当尝试通过Docker的任务栏项目“切换到Linux容器”时,该过程在几秒钟后失败,并显示有关“没有足够的内存来启动Docker”的错误。

没有足够的内存来启动Docker

由于主机系统没有那么多的内存,我想减少全局Docker机器允许使用的最大内存量(我认为这里默认为2 GB)。因此,我想将其减少到仅1 GB。

当Docker在Windows容器模式下运行时,Docker的设置中没有“高级”部分,可以轻松减少内存分配。

没有“高级”部分可以更改内存分配

我可以使用Windows的Hyper-V管理器找到“ MobyLinuxVM”。但是,在此处调整内存设置时,每次我启动Docker并再次尝试切换到Linux容器模式时,它都会被覆盖。

Hyper-V管理器设置,在启动Docker时会再次被覆盖

是否有一种不使用用户界面为Docker定义最大内存量的方法(在这种情况下,由于Windows容器模式中缺少“高级”部分,因此无法使用-在能够切换到Linux容器之前) ?

Oli*_*der 7

经过一番搜索,我发现Docker的用户界面设置存储在中%APPDATA%\Docker\settings.json,内存设置在VmMemory属性中定义。

以下解决了我所处环境中的问题:

  • 退出Docker
  • 在运行命令提示符()中settings.json使用修改文件notepad %APPDATA%\Docker\settings.jsonWindows-Key + R
  • 将值调整VmMemory10242048之前)
  • 保存 settings.json
  • 启动Docker,最终能够使用“切换到Linux容器”

修改<code> settings.json </ code>中的<code> VmMemory </ code>

  • 感谢Oliver Hader,我使用了您的解决方案,但看不到VmMemory,因此我尝试将memoryMiB更改为1024,这样就可以了。希望对别人有帮助。 (2认同)