2015-09-29 2 views
84

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

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

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

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

ответ

91

при создании Docker машины, вы можете назначить размер памяти:

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

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

+0

Это определенно походит на правильное место, чтобы отрегулировать распределение памяти. Тем не менее, по-прежнему возникает такая же ошибка после перезапуска этой виртуальной машины. В программе 'check-system' (https://github.com/memsql/memsql-docker-quickstart/blob/master/check-system) я вижу эти строки, которые определят эту ошибку. 'ONE_MB = 1024 ** 2',' virtual_memory = psutil.virtual_memory() ',' if virtual_memory.total DJElbow

+2

Не удалось получить эту работу, изменив конфигурацию, но удаление и повторное создание докерной машины vm, как показано выше, решило проблему! – DJElbow

+0

Конечно, я очищаю второй способ, кажется, он больше не работает. – BMW

40

Docker Machine maintainer здесь. Я не думаю, что настройка config.json будет работать вручную.

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

EDIT: Еще один ответ показывает, что вы также можете выполнить операцию на месте из командной строки, используя VBoxManage.

+1

Это работает, но обратите внимание, что 'docker-machine inspect' будет продолжать сообщать исходный объем памяти даже после изменения его в GUI VirtualBox. – Tamlyn

+1

Это правда, для того чтобы «отчет о докере-машине» выдавал точную сумму, вам нужно отредактировать 'config.json' (это значит, что' inspect' получает свою информацию). – nathanleclaire

+1

Выполнение этого в Virtualbox является самым простым –

123

Вы можете сделать это через командную строку. Например, чтобы изменить машину от 1cpu/2048MB RAM запуска по умолчанию:

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

Это сработало даже тогда, когда GUI (версия 5.0.16) не будет. – MikeF

+3

Этот ответ должен быть наверху – nakajuice

+0

Спасибо, хорошо работает на mac –

8

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

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

54

Для Докер версии 1.12.1 (сборка: 12133) и выше на MacOS есть возможность изменения процессора и оперативной памяти с интерфейсом и перезапустить докер. Вы можете найти настройки на панели инструментов. Прикрепление изображений для ясности.

Шаги: Настройки ->Расширенный -> настроить ресурсы ->Применить & Restart

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

docker advanced tab (memory)

+3

Это переместилось на вкладку «Дополнительно». Спасибо, что поделились этим. – GabLeRoux

+0

Человек, который был как очевидным, так и совершенно неинтуитивным - спасибо! – AlienWebguy

+0

Имеются ли эти изменения, если я использую лодку с виртуальным боксом? Или мне нужно использовать VBoxManage для настройки размера памяти? – Artur79

3

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

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

Для подтверждения изменения из командной строки:

VBoxManage showvminfo default | grep Memory 

ИЛИ

docker-machine ssh default free 
+0

Привет, вы можете отредактировать свой ответ и [форматировать блоки кода] (https://meta.stackoverflow.com/questions/251361/how-do-i-format-my-code-blocks) правильно? –

Смежные вопросы