【问题标题】:How to fix "error in run: Failed to get machine "boot2docker-vm": machine does not exist"?如何修复“运行中的错误:无法获取机器“boot2docker-vm”:机器不存在”?
【发布时间】:2014-10-26 10:41:47
【问题描述】:

使用 start|info|stop|delete 参数运行 boot2docker 会导致错误消息:

snowch$ boot2docker start
error in run: Failed to get machine "boot2docker-vm": machine does not exist    
snowch$ boot2docker info
error in run: Failed to get machine "boot2docker-vm": machine does not exist
snowch$ boot2docker stop
error in run: Failed to get machine "boot2docker-vm": machine does not exist
snowch$ boot2docker delete
error in run: Failed to get machine "boot2docker-vm": machine does not exist

init 错误略有不同

snowch$ boot2docker init
error in run: Failed to initialize machine "boot2docker-vm": exit status 1

我该如何解决这个问题?

【问题讨论】:

标签: macos docker boot2docker


【解决方案1】:

最后,我删除了boot2docker-vm虚拟机:

snowch$ rm -rfi ~/VirtualBox\ VMs/boot2docker-vm/

答案原文出处:https://github.com/boot2docker/boot2docker/issues/436

注意:这种方法可能是最快的,但您会丢失现有的 boot2docker 虚拟机。如果你想保留现有的 boot2docker 虚拟机,你可以试试Patrick Henning's answer

【讨论】:

  • 对我来说,问题是我必须更新 VirtualBox 想要存储 VM 映像的位置。一段时间前我已经移动了我的主目录,所以 VirtualBox 试图写入一个不存在的目录。
【解决方案2】:

更新: Boot2Docker 现在是旧版。有关官方弃用通知,请参见此处:https://docs.docker.com/installation/mac/,有关将现有 Boot2Docker vm 迁移到 Docker Machine 的信息,请参见此处:https://docs.docker.com/machine/migrate-to-machine/

我还没有看到这个问题是否继续存在,或者是否有类似的解决方案,运行 docker-machine 并使用适当的标志代替 boot2docker,将有助于解决它。


这对我有用,我保留了我所有的图像/容器。我关注了 Anthony A 的回复:https://stackoverflow.com/a/26592419/4377364

以下是具体步骤:

$ boot2docker -v info

{
    "Name": "boot2docker-vm",
    "UUID": "470abff4-f4fe-4c24-90c5-32b3ef7bfbe2",
    "Iso": "/Users/pat/.boot2docker/boot2docker.iso",
    "State": "saved",
    "CPUs": 4,
    "Memory": 2048,
    "VRAM": 8,
    "CfgFile": "/Users/pat/VirtualBox VMs/boot2docker-vm/boot2docker-vm.vbox",
    "BaseFolder": "/Users/pat/VirtualBox VMs/boot2docker-vm",
    "OSType": "",
    "Flag": 0,
    "BootOrder": null,
    "DockerPort": 0,
    "SSHPort": 2022,
    "SerialFile": "/Users/pat/.boot2docker/boot2docker-vm.sock"
}

注意: "State": "saved"

识别 .vbox 文件:

"CfgFile": "/Users/pat/VirtualBox VMs/boot2docker-vm/boot2docker-vm.vbox"

使用这个作为输入来启动虚拟机:

$ VBoxManage startvm "/Users/pat/VirtualBox VMs/boot2docker-vm/boot2docker-vm.vbox"

然后关闭它:

$ VBoxManage controlvm "/Users/pat/VirtualBox VMs/boot2docker-vm/boot2docker-vm.vbox" acpipowerbutton

已验证它实际上已关闭:

$ boot2docker -v info

{
    "Name": "boot2docker-vm",
    "UUID": "470abff4-f4fe-4c24-90c5-32b3ef7bfbe2",
    "Iso": "/Users/pat/.boot2docker/boot2docker.iso",
    "State": "poweroff",
    "CPUs": 4,
    "Memory": 2048,
    "VRAM": 8,
    "CfgFile": "/Users/pat/VirtualBox VMs/boot2docker-vm/boot2docker-vm.vbox",
    "BaseFolder": "/Users/pat/VirtualBox VMs/boot2docker-vm",
    "OSType": "",
    "Flag": 0,
    "BootOrder": null,
    "DockerPort": 0,
    "SSHPort": 2022,
    "SerialFile": "/Users/pat/.boot2docker/boot2docker-vm.sock"
}

注意: "State": "poweroff"

启动 boot2docker 虚拟机:

$ boot2docker up

Waiting for VM and Docker daemon to start...
.................ooo
Started.

【讨论】:

    【解决方案3】:
    • 错误:

    运行出错:无法启动机器“boot2docker-vm”:退出状态 1

    • 解决方案:

    // 警告:这将删除您的所有图片

    1. rm -rfi ~/VirtualBox\ VMs/boot2docker-vm/

    2. boot2docker 初始化

    3. boot2docker 启动

    4. docker ps -a

    【讨论】:

    • 看起来您正在为另一个错误提供解决方案。您可以发布一个与我的问题类似的新问题,然后勾选“回答您自己的问题”框以添加答案。
    • 正如@ChrisSnow 所说,您的帖子是关于不同的东西。以后请仔细阅读问题。让某人寻找一个错误的解决方案,并看到一些东西告诉他们如何处理一个不同的错误并没有帮助。他们最终会给自己带来更多的悲伤,而不是解决问题。我不得不对这样一个可能有害的答案投反对票。
    • 之所以有效,是因为虽然报错信息不同,但答案中贴出的步骤基本相同。
    【解决方案4】:

    boot2docker -v info 开始查看图像和文件的位置。

    {
        "Name": "boot2docker-vm",
        "UUID": "dbd28698-2cab-43d2-8e37-f6c07bd15137",
        "Iso": "/Users/ezrak/.boot2docker/boot2docker.iso",
        "State": "running",
        "CPUs": 8,
        "Memory": 2048,
        "VRAM": 8,
        "CfgFile": "/Users/ezrak/VirtualBox VMs/boot2docker-vm/boot2docker-vm.vbox",
        "BaseFolder": "/Users/ezrak/VirtualBox VMs/boot2docker-vm",
        "OSType": "",
        "Flag": 0,
        "BootOrder": null,
        "DockerPort": 0,
        "SSHPort": 2022,
        "SerialFile": "/Users/ezrak/.boot2docker/boot2docker-vm.sock"
    }
    

    如果您在运行此命令时遇到错误,或者其输出中提到的文件丢失,我建议您重新安装 boot2docker,因为它可能是恢复正常状态的最快选择。

    如果没有,请使用返回的信息来识别您用于 boot2docker 的 Virtual Box 映像(IsoCfgFileBaseFolderSerialFile)并使用 Virtual Box 启动映像,然后将其完全关闭.

    如果您对此操作没有任何问题,那么 boot2docker -v info 应该为您提供 boot2docker-vmState(即此时应该是 poweroff)。

    从这里你应该能够成功使用boot2docker up 命令(没有boot2docker start)并且boot2docker init 应该返回Virtual machine boot2docker-vm already exists,如果没有,那么可能无论如何都要重新安装。

    另外请检查文件权限等常见的疑点。

    HTH

    【讨论】:

    • @AnthonyA “使用 Virtual Box 启动映像,然后将其完全关闭。”工作得很好。谢谢。
    【解决方案5】:

    这对我有用:

    vboxmanage discardstate boot2docker-vm
    boot2docker up
    

    【讨论】:

      【解决方案6】:

      需要注意的是,在我迁移到新机器之前,我安装了旧的虚拟机。它在首选项中有一个旧的主文件夹。这意味着当 docker 尝试初始化 vm 时,它会尝试在 ~/oldaccount 中这样做

      如果您在虚拟框中打开首选项,则可以更改为现有帐户。

      【讨论】:

        【解决方案7】:

        目前接受的这个问题的答案是您完全删除 boot2docker vm。这会起作用,但它也会让你没有任何 docker 缓存或通过

        完成的保存的卷共享

        vboxmanage sharedfolder add "boot2docker-vm" ...

        这显然不理想,尤其是当您在主机系统和虚拟机之间共享大量卷时,或者如果您的构建需要很长时间。

        对我来说,error in run: Failed to get machine "boot2docker-vm": machine does not exist 出现在系统重新启动时。 VirtualBox 试图变得聪明并“保存”虚拟机,这是 boot2docker 似乎无法正常恢复的状态。要解决此问题,请进入 VirtualBox,然后关闭 vm。然后回到 boot2docker 并运行boot2docker up。现在 vm 已经正常关机了,boot2docker 应该可以正常启动它了。

        【讨论】:

          【解决方案8】:

          首先执行 boot2docker 应用程序。这会设置一些变量,并创建 ~/.boot2docker 目录。完成此操作后,boot2docker up/down 将为您工作。

          【讨论】:

            【解决方案9】:

            接受的解决方案对我不起作用

            我必须导出 boot2docker 环境变量

            export DOCKER_HOST=tcp://192.168.59.103:2376
            export DOCKER_CERT_PATH=/Users/USERNAME/.boot2docker/certs/boot2docker-vm
            export DOCKER_TLS_VERIFY=1
            

            【讨论】:

              【解决方案10】:

              重新启动后,我的 Mac 上出现了同样的问题。重新启动 OS X 使 VirtualBox 暂停所有虚拟机(包括 boot2docker)。

              打开 VirtualBox 并启动挂起的实例解决了问题,我可以重用 docker。

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2021-12-14
                • 2017-08-07
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多