Docker не запускается в Windows: недостаточно памяти для запуска докеров

Я пытаюсь начать работу с Docker в Windows. Моя машина имеет 4 ГБ оперативной памяти и процессор Intel i5 с тактовой частотой 1,9 ГГц - 2,5 ГГц, работающий под управлением Windows 10 Pro x64. Я знаю, что это не мощные спецификации, но я бы подумал, что смогу запустить Docker?

Однако, скачав Docker, я получаю сообщение об ошибке:

Не хватает памяти для запуска докеры

Я видел различные сообщения на форуме и вопросы о github об этом и следил за всеми советами, которые я вижу, например, с изменением настроек в Docker, я пробовал эти:

введите описание изображения здесь

Они также упомянули об изменении настроек виртуальной машины Hyper-V, однако это кажется удаленным и воссозданным с заданными параметрами Docker при каждом попытке запуска. Я пробовал 2048MB, 1792MB, 1536MB, 1280MB и 1024MB ОЗУ, все из которых не удались.

Что еще я могу сделать? Неужели я могу запустить докер в той или иной форме на моей машине? NB: Я закрыл все незаменимые фоновые приложения. Представляется, что не существует много других предложений для того, что кажется довольно распространенной проблемой, когда данные решения не работают?

Ответ 1

Я также столкнулся с той же проблемой. Перепробовал все, от предоставления динамической памяти до включения и отключения Hyper V и многое другое. Но со всем этим я не добился успеха.

Затем я попробовал эти шаги для

Docker не запускается в Windows: недостаточно памяти для запуска Docker:

1) В меню на панели задач щелкните правой кнопкой мыши значок Docker icon

.2) Выберите Переключиться на контейнеры Windows...

3) Перезагрузите систему.

После перезапуска ваш статус должен отображаться следующим образом: Docker работает

Надеюсь, это поможет!

PS: переключение обратно на контейнер Linux теперь должно работать после перехода на контейнеры Windows для большинства пользователей, как сказал rfay.


Обновления (01 мая 2019 г.)

Несмотря на описанные выше способы, если вы все еще не можете запустить Docker на своем компьютере с Windows, попробуйте выполнить следующие действия:

  • Загрузите RAMMap с официального сайта Microsoft
  • Откройте приложение и выберите Пустое меню
  • В списке подменю выберите первый вариант Пустые рабочие наборы
  • Теперь обновите его, нажав F5

Теперь попробуйте запустить Docker, и я считаю, что это должно работать. Удачи!

RAMMap Application

Ответ 2

В настройках я сделал сброс до заводских настроек. И перезагрузил ноутбук. Это сработало для меня

Ответ 3

Это не проблема оперативной памяти. Это выделенная дисковая память докеру.
Это означает, что у докера недостаточно места для создания образа или любых других операций, связанных с докером.

Откройте настройки докера >> Дополнительно >> Максимальный размер образа диска

Увеличьте этот размер и примените изменения.

Он автоматически перезапустится, и тогда вы готовы.

enter image description here

Ответ 4

Я решил эту проблему, щелкнув правой кнопкой мыши на значке панели задач, выбрав настройки, а затем коснувшись раздела "Дополнительно".

Затем я опустил память со значения по умолчанию с 2048 до 1536 и работает как шарм. Другой вариант - попытаться переключиться на контейнеры Windows, затем перезагрузить компьютер и вернуться к контейнерам Linux.

Ниже приведены настройки докера с открытой вкладкой "Дополнительно". Обратите внимание, что память 1536, а мой ноутбук имеет 4 ГБ оперативной памяти.

enter image description here

Также виртуальная машина "MobyLinuxVM" работает, как показано ниже;

enter image description here

Я надеюсь, что это поможет кому-то один день, даже если был поздний ответ :)

Ответ 5

если вы находитесь в окне и получили эту ошибку, перейдите в окно поиска

#1 type Hyper-V Manager 
 Click on it,
 a window like attached screenshot open,

enter image description here

#2 Select  MobilinuxVM(normally same name if running windows docker)
#3 Right click and open - Setting 
    2 The second window will open(setting for MobiLinux) i.e to the screenshot.
#4 Go to Memory Tab in left Pane.
#5 click on a dynamic checkbox and set minimum value to some lower amount say 512, and max value to the desired one,
#6 apply 
now it will start running as well after few minutes take the amount it required as well.

Ответ 6

Включили ли вы охват NUMA в настройках HyperV? если не включить его, держу пари, что это решит вашу проблему.

По умолчанию Windows Server включает охват NUMA, что обеспечивает максимальную гибкость, поскольку виртуальные машины (ВМ) могут получать доступ к памяти и использовать ее на любом узле NUMA. Но это может привести к снижению производительности по сравнению с принуждением виртуальных машин использовать память на том же узле NUMA, что и ядра процессора.

Отключая охват NUMA, вы гарантируете, что виртуальные машины используют ядра памяти и процессора в одном и том же узле NUMA, обеспечивая наилучшую производительность. Это должно быть изменено только один раз, если вы, как администратор, чувствуете себя комфортно с NUMA и последствиями отключения, а также если у вас есть какой-то дополнительный пакет управления, который может помочь обеспечить наилучшую конфигурацию.

Чтобы настроить охват NUMA, откройте настройки Hyper-V, выберите опцию "Объединение NUMA" и отключите ее, я уверен, она будет решена; Я боролся с проблемой в течение недели и решил ее, отключив NUMA.

Я уверен, что это будет помечено как решенное путем отключения NUMA в диспетчере Hyper-V.

Ответ 7

У меня тоже та же проблема. Возможно, у вас есть другая виртуальная машина в Hyper-v, другая память для виртуальной машины тоже нужна. остановите все остальные виртуальные машины Hyper-v и повторите проверку. для меня работали Мой менеджер Hyper-v

введите описание изображения здесь

Ответ 8

Когда я столкнулся с этой проблемой, я изменил сценарий PowerShell MobyLinux.ps1, находящийся в папке ресурсов в установке Docker в папке C:\Program Files\Docker\Docker\resources. По сути, я установил значения для $ CPU на 2 и $ Memory на 512, что сработало для моего ограниченного ресурса dev box!

enter image description here

В этот момент, когда Docker удаляет экземпляр MobyLinuxVM в Hyper-V и заново создает его из сценария PowerShell, он теперь использует мои значения: enter image description here

На этот раз виртуальная машина остается стабильной, и Docker успешно переключается с контейнеров Windows на контейнеры Linux:

enter image description here

Надеюсь, это кому-нибудь поможет.

Ответ 9

Я уменьшил объем памяти и поменял ее местами до минимума, а также размер образа диска до 32 ГБ, и он, наконец, запустился без переключения на контейнеры Windows или перезагрузки.

Ответ 10

Проблема: Установлен Docker Desktop. Ошибка "Недостаточно памяти" при запуске с экземпляра Linux.

Подробности: ОС: Windows 10 Professional Ведущий: Lenovo ThinkPad Carbon X1, 4 ГБ оперативной памяти Docker Desktop: версия 2.1.0.1 (37199) Расширенные настройки Docker:

  • Процессоры: 2
  • Память: 2048 МБ (это максимум)
  • Обмен: 2048 МБ
  • Размер образа диска: 59,6 ГБ (используется 4 МБ)

Настройки Hyper-V для DockerDesktopVM:

  • Настройки> Память> Оперативная память: 2048 МБ (попытался увеличить до 4096; по-прежнему не работает)
  • Настройки> Память> Включить динамическую память (проверено/не проверено; оба не работают)

При изменении указанных выше настроек Docker Desktop выдает эту ошибку при запуске/перезапуске:

Недостаточно памяти для запуска Docker Desktop Вы пытаетесь запустить Docker Desktop, но у вас недостаточно памяти. Освободите память или измените настройки.

Решение проблем сообщается в следующих ссылках, например, начиная с экземпляра Windows, затем переключаясь обратно на Linux, у меня не работает, независимо от того, сколько памяти я выделяю с помощью настроек Hyper-V или Docker.

Это крайне разочаровывает, потому что, очевидно, люди сообщают, что могут запускать экземпляры Linux на хост-машинах с 4 ГБ ОЗУ. Вот и мне интересно, что я делаю не так.

Ресурсы исследованы/опробованы:

Вопросы:

  1. Могу ли я даже запустить Docker Desktop с экземпляром Linux на моем хост-компьютере?
  2. Если (1) - да, то какие настройки позволят мне это сделать?

Ответ 11

Попробуйте изменить память вашей виртуальной машины с 64 МБ (MegaByte) до 2048 МБ. Это 2 ГБ (GigaByte), 1 ГБ для Docker, 1 ГБ для ОС и других программ и должно быть достаточно.