【问题标题】:Change boot2docker memory assignment更改 boot2docker 内存分配
【发布时间】:2014-06-26 03:56:05
【问题描述】:

我一直在 Mac 上玩 docker,所以我需要安装 boot2docker 才能让它工作。

我有一台非常强大的机器和一个非常消耗资源的应用程序,所以我想将可用内存从默认的 1GB 增加到 8GB 之类的东西。


这是我尝试过的

使用 --memory 参数引导 boot2dock

boot2docker --memory=8116 boot

修改配置文件

Verbose = true
VBM = "VBoxManage"
SSH = "ssh"
SSHGen = "ssh-keygen"
SSHKey = "/Users/mjsilva/.ssh/id_boot2docker"
VM = "boot2docker-vm"
Dir = "/Users/mjsilva/.boot2docker"
ISO = "/Users/mjsilva/.boot2docker/boot2docker.iso"
VMDK = ""
DiskSize = 20000
Memory = 8116
SSHPort = 2022
DockerPort = 2375
HostIP = "192.168.59.3"
DHCPIP = "192.168.59.99"
NetMask = [255, 255, 255, 0]
LowerIP = "192.168.59.103"
UpperIP = "192.168.59.254"
DHCPEnabled = true
Serial = false
SerialFile = "/Users/mjsilva/.boot2docker/boot2docker-vm.sock"

然后启动 boot2docker

boot2docker boot

这些方法似乎都不起作用。我最终只有默认内存。


我设法更改的唯一方法是将 virtualbox GUI 关闭 boot2docker,手动更改并再次启动它。

我错过了什么吗?

【问题讨论】:

    标签: docker boot2docker


    【解决方案1】:

    由于 boot2docker init -m 在我的 boot2docker 版本中不起作用,我只使用了 VBoxManage 命令:

    VBoxManage modifyvm boot2docker-vm --memory 3500
    

    另外,使用这个我相信你可以避免破坏你的虚拟机,你应该只是stop它然后再次start

    【讨论】:

    • 在最近的boot2docker版本中,vm名称为boot2docker-vm
    • 一段时间后我意识到 boot2docker 带有功能齐全的 VirtualBox UI。所以你可以boot2docker stop,然后在你的终端输入VirtualBox,VirtualBox GUI就会打开,你可以在其中调整你的VM参数。
    【解决方案2】:

    没有必要像 Abel Muiño 所说的那样 delete 你的 boot2docker vm

    按照 Alex Petrenko 的建议去做就足够了。

    1. boot2docker stop
    2. VBoxManage modifyvm boot2docker-vm --memory 3500
    3. boot2docker start

    【讨论】:

    • 此评论与 Alex Petrenko 2014 年 10 月的回答相同。现在他们都投了赞成票。但是人们可能希望将它们合并为一个。对于我使用过的 Windows 上的 boot2doccer:/c/Program\ Files/Oracle/VirtualBox/VBoxManage.exe modifyvm boot2docker-vm --memory 6144
    【解决方案3】:

    您需要使用新的内存设置重新初始化 boot2docker 虚拟机:

    $ boot2docker delete
    $ boot2docker init -m 5555
    ... lots of output ...
    $ boot2docker info
    { ... "Memory":5555 ...}
    

    您现在可以boot2docker up 并且图像将始终使用配置的内存量。

    【讨论】:

    • 当我尝试使用 -m 标志运行时,我收到 unknown shorthand flag: 'm' in -m 错误。有谁知道为什么? (boot2docker 版本返回Client version: v1.2.0 Git commit: a551732
    • 我遇到了和@cjhin 一样的问题
    • 你能试试运行boot2docker versionboot2docker help吗?从 Mac OSX 的 1.1.2 开始,该标志就存在(至少)
    • 查看下面的答案,这意味着您不必销毁您的虚拟机。我对他们投了赞成票,对此投了反对票(对不起),所以读者会得到更好的答案。
    • 不用删,看下面的答案,修改作品。投票给他们,请也这样做,所以大家不要浪费时间。
    【解决方案4】:

    您也可以在 GUI 中调整设置。

    1. 打开 VirtualBox
    2. 选择“boot2docker-vm”
    3. 点击设置
    4. 选择系统
    5. 调整您的 RAM

    无需删除您的 boot2docker 虚拟机。

    【讨论】:

    • 不知道为什么我被否决了。这是一个合法的更改,是命令行修补的替代方案,可能适合非开发/选择用户(内容编辑器、分析师等)。
    【解决方案5】:

    当您在 Mac 上工作时,您不一定需要使用 boot2docker。通常我使用docker-machine。有了它,您还可以轻松创建符合您要求的 VM,例如:

    docker-machine create --virtualbox-disk-size "50000" --virtualbox-cpu-count "4" --virtualbox-memory "8116" -d virtualbox dev
    

    这将创建一个名为 dev 的 VM,该 VM 具有 50GB 磁盘、4 个 CPU 和 8GB 内存。

    您可以使用docker-machine ls 列出您创建的VM,并获取与docker-machine ip dev 连接的IP 地址。

    【讨论】:

      【解决方案6】:

      如果您在 hyperv 中使用 boot2docker。 Docker 具有驱动程序特定的 cli 参数。

      列表:https://docs.docker.com/machine/drivers/

      HyperV : https://docs.docker.com/machine/drivers/hyper-v/#options

      例如创建: docker-machine create --driver hyperv --hyperv-virtual-switch "Multiplexor" Boot2Docker --hyperv-memory "8192" --hyperv-cpu-count "4" --hyperv-disk-size "40000" --hyperv-static-macaddress "00:15:1D:01:F4:11"

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-06-17
        • 2011-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-04-27
        相关资源
        最近更新 更多