Как увеличить память докер-машины Mac

Я новичок в Docker и пытаюсь пройти это руководство по настройке MemSQL из образа Docker - http://docs.memsql.com/4.0/setup/docker/. Я работаю на Mac, и в руководстве используется boot2docker, который, похоже, устарел.

Для работы виртуальной машине требуется 4 ГБ памяти. В руководстве указано, как это сделать с помощью boot2docker, но я не могу найти способ сделать это с помощью панели инструментов docker-machine / docker.

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

docker run --rm --net=host memsql/quickstart check-system
Error: MemSQL requires at least 4 GB of memory to run.

person DJElbow    schedule 29.09.2015    source источник


Ответы (7)


когда вы создаете докер-машину, вы можете указать размер памяти:

docker-machine create -d virtualbox --virtualbox-memory 4096 default

Позвольте мне знать, если это помогает.

person BMW    schedule 29.09.2015
comment
Это определенно кажется подходящим местом для настройки распределения памяти. Однако после перезапуска этой виртуальной машины по-прежнему возникает та же ошибка. В программе check-system (github.com/memsql/memsql-docker -quickstart / blob / master /), я вижу эти строки, которые определяют эту ошибку. ONE_MB = 1024 ** 2, virtual_memory = psutil.virtual_memory(), if virtual_memory.total < ONE_MB * 3700: sys.stderr.write("Error: MemSQL requires at least 4 GB of memory to run.\n"). - person DJElbow; 29.09.2015
comment
Не удалось заставить это работать, изменив конфигурацию, но удаление и воссоздание виртуальной машины докера, как показано выше, решило проблему! - person DJElbow; 29.09.2015
comment
Конечно, убираю вторым способом, вроде уже не работает. - person BMW; 12.01.2016

Вы можете сделать это через командную строку. Например, чтобы изменить аппарат с установленным по умолчанию 1 ЦП / 2048 МБ ОЗУ, выполните:

docker-machine stop
VBoxManage modifyvm default --cpus 2
VBoxManage modifyvm default --memory 4096
docker-machine start

Затем вы можете проверить свои настройки:

VBoxManage showvminfo default | grep Memory
VBoxManage showvminfo default | grep CPU

И чтобы docker-machine inspect сообщал о правильном положении вещей, отредактируйте ~/.docker/machine/machines/default/config.json, чтобы отразить ваши изменения.

person Ran Rubinstein    schedule 02.05.2016
comment
Это работало, даже когда графический интерфейс (версия 5.0.16) не работал. - person MikeF; 26.01.2017
comment
Этот ответ должен быть вверху - person nakajuice; 06.06.2017
comment
Обратите внимание, что после выполнения команды docker-machine inspect не будет показывать никаких изменений. Однако, если вы запустите docker stats, вы увидите, что изменения были применены. - person slovit; 29.10.2018
comment
@slovit и другие: затем вы можете изменить файл docker-machine config.json, чтобы он отражал фактический размер. Пример: для default, используемого в примере решения, измените файл ~/.docker/machine/machines/default/config.json так, чтобы вложенное свойство MemoryCPU, если оно также было изменено) в Driver было изменено на 4096. Тогда docker-machine inspect покажет правильное значение. - person ScriptAutomate; 03.05.2020

Для версии Docker 1.12.1 (сборка: 12133) и выше в macOS есть возможность изменить ЦП и ОЗУ из пользовательского интерфейса и перезапустить докер. Вы можете найти настройки на панели инструментов. Прикрепляем изображения для наглядности.

Обновление, август 2020 г.: настройки - ›Ресурсы (спасибо @ swedge218)

Старый этап (возможно, уже не существует): Настройки - ›Дополнительно -› настройка ресурсов - ›Применить и перезапустить

https://www.dropbox.com/s/znltd1v4r00nfpu/Screenshot%202017-03-24%2012.12.58.png?dl=0

дополнительная вкладка докера (память)

person Srikar Appalaraju    schedule 27.09.2016
comment
Это перемещено на вкладку «Дополнительно». Спасибо, что поделились этим. - person GabLeRoux; 24.03.2017
comment
Человек, который был одновременно очевиден и совершенно не интуитивен - спасибо! - person AlienWebguy; 01.11.2017
comment
Применяются ли эти изменения, если я использую лодку с виртуальным боксом? Или мне нужно использовать только VBoxManage для настройки размера памяти? - person Artur79; 06.02.2018
comment
Есть ли эквивалент этой командной строки? У меня есть Docker для Mac, но, по-видимому, docker-machine ls мне ничего не дает, поэтому я не могу изменить машину по умолчанию. - person Andrea Bergonzo; 17.05.2018
comment
Это предпочтения - ›Ресурсы на сегодняшний день. - person swedge218; 12.08.2020

Сопровождающий Docker Machine здесь. Я не думаю, что ручная настройка config.json сработает.

У вас есть два варианта: либо создать машину с установленным --virtualbox-memory, либо настроить память виртуальной машины в графическом интерфейсе VirtualBox («Настройки> Система» для этой виртуальной машины, я думаю). Убедитесь, что машина выключена и там должен быть небольшой бегунок, который работает.

РЕДАКТИРОВАТЬ: Другой ответ показывает, что вы также можете выполнить операцию на месте из командной строки, используя VBoxManage.

person nathanleclaire    schedule 04.01.2016
comment
Это работает, но обратите внимание, что docker-machine inspect будет продолжать сообщать исходный объем памяти даже после изменения его в графическом интерфейсе VirtualBox. - person Tamlyn; 02.02.2016
comment
Верно, чтобы docker-machine inspect сообщал точную сумму, вам нужно отредактировать config.json (именно отсюда inspect получает информацию). - person nathanleclaire; 15.03.2016
comment
Сделать это в Virtualbox проще всего - person Niranjan Sonachalam; 26.08.2016

Я не мог заставить другие ответы работать. Единственное, что у меня сработало, - это удалить машину по умолчанию и воссоздать ее с большим объемом памяти.

docker-machine rm default
docker-machine create -d virtualbox --virtualbox-memory=4096 --virtualbox-cpu-count=2 --virtualbox-disk-size=50000 default

Это исправление было найдено здесь: https://www.ibm.com/developerworks/community/blogs/jfp/entry/Using_Docker_Machine_On_Windows?lang=en

person bbuie    schedule 07.09.2016

Другие ответы показали, как изменить память с помощью VBoxManage:

docker-machine stop default
VBoxManage modifyvm default --memory 4096
docker-machine start default

Чтобы подтвердить изменение из командной строки:

VBoxManage showvminfo default | grep Memory

OR

docker-machine ssh default free
person cpep    schedule 24.06.2017
comment
Привет, cpep, можете ли вы отредактировать свой ответ и правильно отформатировать блоки кода? - person TT.; 27.09.2017

fox xhyve (другая виртуализация под macos), вы можете изменить свойство ~ / .docker / machine / default / config.json Driver / Memory (по умолчанию 1024), а затем перезапустить докер-машину, чтобы применить изменения.

person dchekmarev    schedule 23.03.2018
comment
Я нашел его под ~/.docker/machine/machines/default/config.json. Спасибо ???? - person Tarek N. Elsamni; 02.07.2019