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

时间:2018-10-20 09:14:27

标签: docker windows-10 docker-machine hyper-v

场景

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

问题

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

Not enough memory to start Docker

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

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

No "advanced" section in order to change memory assignment

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

Hyper-V manager settings, that get overwritten again when starting Docker

问题

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

1 个答案:

答案 0 :(得分:4)

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

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

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

modify <code>VmMemory</code> in <code>settings.json</code>