【问题标题】:How to increase docker-machine memory Mac如何增加 docker-machine 内存 Mac
【发布时间】:2023-03-08 00:16:01
【问题描述】:

我是 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.

【问题讨论】:

    标签: macos docker virtualbox docker-machine singlestore


    【解决方案1】:

    苹果硅

    我一直在寻找 Apple Silicon 的解决方案,据我了解,docker-machine 已被弃用 (link),因此我最终使用 colima (link)。

    per colima documentation 可以定义 CPU 数量和可用内存,例如:

    colima start --cpu 1 --memory 2 --disk 10
    

    以及修改现有虚拟机:

    colima stop
    colima start --cpu 4 --memory 8
    

    【讨论】:

      【解决方案2】:

      对于 macOS 上的 Docker 版本 1.12.1(内部版本:12133)及更高版本,可以选择从 UI 更改 CPU 和 RAM 并重新启动 docker。您可以从工具栏中找到首选项。为了清楚起见,附上图片。

      2020 年 8 月更新:偏好 -> 资源(感谢 @swedge218)

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

      【讨论】:

      • 这已移至高级选项卡。感谢分享。
      • 这个人既明显又完全不直观 - 谢谢!
      • 如果我将小艇与 virtualbox 一起使用,这些更改是否也适用?或者我应该只使用 VBoxManage 来调整内存大小?
      • 是否有与此等效的命令行?我有 Docker for mac 但显然 docker-machine ls 什么也没给我,所以我无法修改默认机器。
      • 这是首选项 -> 资源截至今天。
      【解决方案3】:

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

      【讨论】:

      • 即使在 GUI(5.0.16 版)不支持的情况下也能正常工作。
      • 这个答案应该在顶部
      • 请注意,命令执行后docker-machine inspect 不会显示任何更改。但是,如果您运行 docker stats,您会看到更改已应用。
      • @slovit and others:然后您可以修改 docker-machine config.json 文件以反映实际大小。示例:对于示例解决方案中使用的default,修改~/.docker/machine/machines/default/config.json 文件,以便Driver 下的Memory(和CPU,如果也已修改)子属性更改为4096。然后,docker-machine inspect 将显示正确的值。
      【解决方案4】:

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

      【讨论】:

      • 我在~/.docker/machine/machines/default/config.json 下找到了它。谢谢?
      【解决方案5】:

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

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

      从命令行确认更改:

      VBoxManage showvminfo default | grep Memory
      

      docker-machine ssh default free
      

      【讨论】:

      【解决方案6】:

      这里是 Docker Machine 维护者。我不认为手动调整config.json 会起作用。

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

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

      【讨论】:

      • 这可行,但请注意docker-machine inspect 将继续报告原始内存量,即使在 VirtualBox GUI 中对其进行了更改。
      • 没错,为了让docker-machine inspect 报告准确的金额,您确实必须编辑config.json(这是inspect 获取信息的地方)。
      • 在Virtualbox中做是最简单的
      【解决方案7】:

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

      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

      【讨论】:

        【解决方案8】:

        当你创建 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").
        • 无法通过更改配置来使其正常工作,但如上所示删除并重新创建 docker machine vm 解决了问题!
        • 当然,我清理了第二种方式,似乎它不再起作用了。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多