Как уменьшить виртуальную память по умолчанию для контейнеров Docker Linux в Windows - PullRequest
0 голосов
/ 20 октября 2018

Сценарий

  • Windows 10 Professional
  • Docker 18.06.1-ce, работающий в режиме контейнера Windows
  • 4 ГБ доступной памяти на хост-системе
  • с использованием виртуальной машины Hyper-V

Проблема

При попытке «переключиться на контейнеры Linux» с помощью элемента панели задач Докера через пару секунд происходит сбой процесса с сообщением об ошибке «Недостаточно памяти для запуска Docker ".

Not enough memory to start Docker

Поскольку в хост-системе не так много памяти, я хотел бы уменьшить максимальный объемпамяти, которую может использовать глобальная машина Docker (я думаю, что по умолчанию 2 ГБ).Таким образом, я бы хотел уменьшить это значение до 1 ГБ.

Когда Docker работает в режиме контейнера Windows, в настройках Docker нет «расширенного» раздела, который позволил бы легко сократить это назначение памяти.

No

Мне удалось найти «MobyLinuxVM» с помощью диспетчера Hyper-V в Windows.Однако при настройке параметров памяти он перезаписывается каждый раз, когда я запускаю Docker и пытаюсь снова переключиться в режим контейнера Linux.

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

Вопрос

Есть ли другой способ определить максимальный объем памяти для Docker без использования пользовательского интерфейса (который не будет работать в этом сценарии из-за отсутствующего «расширенного» раздела в режиме контейнера Windows - перед возможностью переключения наКонтейнеры Linux)?

1 Ответ

0 голосов
/ 20 октября 2018

После некоторых поисков я обнаружил, что настройки пользовательского интерфейса Docker хранятся в %APPDATA%\Docker\settings.json, настройки памяти определены в свойстве VmMemory.

Следующее решило проблему в моей среде:

  • выйти из Docker
  • изменить settings.json файл, используя notepad %APPDATA%\Docker\settings.json в командной строке запуска (Windows-Key + R)
  • настроить значение VmMemory до 1024 (имеетбыл 2048 раньше)
  • сохранить settings.json
  • запустить Docker и, наконец, иметь возможность использовать "переключиться на контейнеры Linux"

imageVmMemory in settings.json">

...