如何增加Mac的docker-machine内存


108

我是Docker的新手,并尝试通过本教程从Docker映像设置MemSQL- http: //docs.memsql.com/4.0/setup/docker/ 。我在Mac上,该教程使用的boot2docker似乎已被弃用。

VM需要4GB内存才能运行。本教程指定了如何执行此操作,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.

Answers:


111

创建docker计算机时,可以指定内存大小:

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

让我知道是否有帮助。


这绝对是调整内存分配的正确位置。但是,重新启动此VM后仍然出现相同的错误。在check-system程序中(github.com/memsql/memsql-docker-quickstart/blob/master/…),我看到了确定该错误的这些行。ONE_MB = 1024 ** 2virtual_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")
DJElbow

2
无法通过更改配置来解决此问题,但如上所述删除并重新创建docker machine vm解决了该问题!
DJElbow 2015年

当然,我清理了第二种方法,看来它不再起作用了。
宝马

178

您可以通过命令行执行此操作。例如,要从默认的1cpu / 2048MB RAM更改计算机,请运行:

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,以反映更改。


1
即使GUI(版本5.0.16)不起作用,此方法也起作用。
MikeF

6
这个答案应该放在顶部
nakajuice

5
请注意,命令执行后docker-machine inspect不会显示任何更改。但是,如果您运行docker stats,将看到已应用更改。
slovit

@slovit等:然后,您可以修改docker-machine config.json文件以反映实际大小。示例:default如在示例解决方案中使用的,对于,请修改~/.docker/machine/machines/default/config.json文件,以将Memory(以及CPU也要修改的)子属性Driver更改为4096。然后,docker-machine inspect将显示适当的值。
ScriptAutomate

79

对于macOS上的Docker版本1.12.1(内部版本:12133)及更高版本,可以选择从UI更改CPU和RAM并重新启动Docker。您可以从工具栏找到首选项。附加图像以便清晰。

步骤:首选项 -> 高级 ->调整资源-> 应用并重新启动

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

泊坞窗高级选项卡(内存)


3
这已移至“高级”选项卡。感谢您分享。
GabLeRoux

既明显又完全不直观的人-谢谢!
AlienWebguy

如果我在virtualbox中使用橡皮艇,这些更改也适用吗?或者我应该只使用VBoxManage来调整内存大小?
Artur79 '18

2
是否有与此等效的命令行?我有适用于Mac的Docker,但显然docker-machine ls没有提供任何帮助,因此我无法修改默认计算机。
安德里亚·贝尔贡佐

42

Docker Machine维护者在这里。我认为config.json手动调整不会奏效。

您的两个选项是使用--virtualbox-memoryset 创建计算机,或者在VirtualBox GUI中调整VM的内存(我认为该VM的“设置>系统”)。确保机器电源已关闭,并且应该有一个可以工作的小滑块。

编辑:另一个答案表明,您也可以使用从命令行进行就地操作VBoxManage


3
这是可行的,但请注意,docker-machine inspect即使在VirtualBox GUI中进行了更改,它仍将继续报告原始的内存量。
坦林

2
这是事实,才能有docker-machine inspect报告准确的金额,你必须编辑config.json(这就是inspect获取信息)。
nathanleclaire

1
在Virtualbox中执行操作最简单
Niranjan Sonachalam '16


14

其他答案显示了如何使用VBoxManage更改内存:

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

要从命令行确认更改:

VBoxManage showvminfo default | grep Memory

要么

docker-machine ssh default free

cpep,您好,您可以编辑答案并正确格式化代码块吗?
TT。

4

fox xhyve(macOS下的另一种虚拟化),您可以修改〜/ .docker / machine / default / config.json属性Driver / Memory(默认为1024),然后重新启动docker计算机以应用更改


我在下找到它~/.docker/machine/machines/default/config.json。感谢👍
Tarek N. Elsamni '19
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.