Macos 如何增加docker机器的Mac内存

Macos 如何增加docker机器的Mac内存,macos,docker,virtualbox,docker-machine,singlestore,Macos,Docker,Virtualbox,Docker Machine,Singlestore,我是Docker的新手,正在尝试通过Docker映像来完成本教程设置MemSQL-。我在Mac电脑上,本教程使用了boot2docker,这似乎已经被弃用了 虚拟机需要4GB内存才能运行。本教程指定了如何使用boot2docker执行此操作,但我找不到使用docker机器/docker工具箱执行此操作的方法 这是我正在使用的命令和我在不改变boot2docker配置的情况下浏览教程时遇到的错误 docker run --rm --net=host memsql/quickstart check-

我是Docker的新手,正在尝试通过Docker映像来完成本教程设置MemSQL-。我在Mac电脑上,本教程使用了
boot2docker
,这似乎已经被弃用了

虚拟机需要4GB内存才能运行。本教程指定了如何使用
boot2docker
执行此操作,但我找不到使用docker机器/docker工具箱执行此操作的方法

这是我正在使用的命令和我在不改变boot2docker配置的情况下浏览教程时遇到的错误

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

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

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

让我知道这是否有帮助。

这里是Docker机器维护人员。我认为手动调整
config.json
是行不通的

您的两个选项是创建设置了
--virtualbox内存的机器,或者在virtualbox GUI中调整虚拟机的内存(我认为是该虚拟机的“设置>系统”)。确保机器断电,并且应该有一个小滑块可以工作


编辑:另一个答案显示,您也可以使用
VBoxManage

从命令行执行就地操作。您可以通过命令行执行此操作。例如,要将机器从默认的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
,以反映您的更改。

我无法获得其他答案。对我来说唯一有效的方法就是删除默认机器并用更多内存重新创建它

docker-machine rm default
docker-machine create -d virtualbox --virtualbox-memory=4096 --virtualbox-cpu-count=2 --virtualbox-disk-size=50000 default
此处找到此修复程序:

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

更新:2020年8月:首选项->资源(感谢@swedge218)

旧步骤(现在可能已经失效):首选项->高级->调整资源->应用并重新启动


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

docker-machine stop default
VBoxManage modifyvm default --memory 4096
docker-machine start default
要从命令行确认更改,请执行以下操作:

VBoxManage showvminfo default | grep Memory

fox xhyve(macos下的另一个虚拟化)您可以修改~/.docker/machine/default/config.json 属性驱动程序/内存(默认为1024)
然后重新启动docker机器以应用更改

这显然是调整内存分配的正确位置。但是,重新启动此VM后仍会出现相同的错误。在
检查系统
程序()中,我看到了确定此错误的这些行
ONE_MB=1024**2
virtual_memory=psutil.virtual_memory()
如果virtual_memory.total
。无法通过更改配置使其正常工作,但是如上所示删除并重新创建docker机器vm解决了这个问题!当然,我用第二种方法清理,似乎不再有效。这是可行的,但请注意,
docker machine inspect
将继续报告原始内存量,即使在VirtualBox GUI中对其进行了更改。这是真的,为了让
docker machine inspect
报告准确的内存量,您确实需要编辑
config.json
(这是
inspect
获取信息的地方)。在Virtualbox中执行此操作是最简单的,即使GUI(版本5.0.16)不会这样做,它也能工作。这个答案应该在顶部注意执行命令后
docker machine inspect
不会显示任何更改。但是,如果运行
docker stats
您将看到更改已被应用。@slovit和其他:然后您可以修改docker机器
config.json
文件以反映实际大小。示例:对于示例解决方案中使用的
default
,修改
~/.docker/machine/machines/default/config.json
文件,以便
驱动程序
下的
内存
(和
CPU
如果也被修改)子属性更改为
4096
。然后,
docker machine inspect
将显示正确的值。这已移动到高级选项卡。谢谢你分享这个。老兄,这既明显又完全不直观-谢谢!如果我将dinghy与virtualbox一起使用,这些更改是否也适用?或者我应该只使用VBoxManage来调整mem大小?是否有与此等效的命令行?我有Docker for mac,但显然Docker machine ls没有给我任何东西,因此我无法修改默认机器。从今天开始,它是Preferences->Resources。嗨,cpep,你能给出正确的答案吗?我在
~/.Docker/machine/machines/default/config.json
下找到了它。谢谢
docker-machine ssh default free