如何修复“运行中的错误:无法获取机器”boot2docker-vm“:机器不存在”?

时间:2014-10-26 10:41:47

标签: macos docker boot2docker

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

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

我该如何解决这个问题?

10 个答案:

答案 0 :(得分:43)

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

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

答案的原始来源:https://github.com/boot2docker/boot2docker/issues/436

注意:此方法可能是最快的,但您将丢失现有的boot2docker虚拟机。如果要保留现有的boot2docker虚拟机,可以尝试Patrick Henning's answer

答案 1 :(得分:36)

更新: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"

将其用作启动VM的输入:

$ 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 VM:

$ boot2docker up

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

答案 2 :(得分:13)

  • 错误:

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

  • 解决方案:

//警告:这会删除所有图片

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

  2. boot2docker init

  3. boot2docker start

  4. docker ps -a

答案 3 :(得分:6)

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(IsoCfgFileBaseFolderSerialFile)的虚拟盒图像并使用Virtual Box启动图像然后完全关闭。

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

从这里开始你应该能够使用boot2docker up命令(没有boot2docker start)和boot2docker init应该返回Virtual machine boot2docker-vm already exists,如果不是,那么重新安装反正可能是有条不紊的。

另外请检查通常的嫌疑人,例如文件权限等。

HTH

答案 4 :(得分:2)

这对我有用:

vboxmanage discardstate boot2docker-vm
boot2docker up

答案 5 :(得分:1)

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

中执行此操作

如果您在虚拟框中打开偏好设置,则可以更改为现有帐户。

答案 6 :(得分:0)

此问题的当前接受的答案是您完全删除了boot2docker vm。这样做会有效,但它也会让你没有任何码头缓存或通过

完成保存的卷共享

vboxmanage sharedfolder add "boot2docker-vm" ...

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

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

答案 7 :(得分:0)

首先执行boot2docker应用程序。这将设置一些变量,并创建〜/ .boot2docker目录。完成后,boot2docker up / down将对你有用。

答案 8 :(得分:0)

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

我必须导出boot2docker env变量

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

答案 9 :(得分:0)

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

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