如何解决“运行中的错误:无法获得机器”boot2docker-vm“:机器不存在”?

使用start |运行boot2docker 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 

我怎样才能解决这个问题?

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

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

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

注意 :这个方法可能是最快的,但是你将失去现有的boot2docker虚拟机。 如果你想保留现有的boot2docker虚拟机,你可以尝试Patrick Henning的答案

更新: Boot2Docker现在是遗留的。 请参阅官方弃用通知: https ://docs.docker.com/installation/mac/,以及有关将先前存在的Boot2Docker虚拟机迁移到Docker Machine的信息: https ://docs.docker.com/machine/migrate- to-machine / 。

我还没有看到这个问题是否继续存在,或者如果类似的解决scheme,运行docker-machine与适当的标志代替boot2docker ,将有助于补救。


这工作对我来说,我保留了我所有的图像/容器 。 我遵循安东尼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"

用它作为input启动虚拟机:

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

然后closures它:

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

确认它已经closures:

$ 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. 
  • 错误:

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

  • 解:

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

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

  2. boot2docker初始化

  3. boot2docker启动

  4. docker工人ps -a

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" } 

如果运行此命令时出现错误,或者输出中提到的文件丢失,build议您重新安装boot2docker,因为它可能是正常状态下最快的选项。

如果没有,请使用返回的信息来标识boot2docker( IsoCfgFileBaseFolderSerialFile )的Virtual Box映像,并使用Virtual Box启动映像,然后完全closures映像。

如果你没有得到这个操作的问题,那么boot2docker -v info应该给你boot2docker-vm的状态 (也就是说在这个时候它应该closures )。

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

也请检查通常的嫌疑人,如文件许可等

HTH

这适用于我:

 vboxmanage discardstate boot2docker-vm boot2docker up 

值得注意的是,在我迁移到新机器之前,我已经安装了一个虚拟机箱。 它在首选项中有一个旧的主文件夹。 这意味着当docker试图启动虚拟机时,它会尝试在〜/ oldaccount中这样做

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

目前接受的这个问题的答案是你完全删除boot2docker虚拟机。 这将工作,但它也将离开你没有任何dockercaching或通过完成保存的卷份额

vboxmanage sharedfolder add "boot2docker-vm" ...

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

对我来说, error in run: Failed to get machine "boot2docker-vm": machine does not existerror in run: Failed to get machine "boot2docker-vm": machine does not exist出现在系统重新启动。 VirtualBox试图变得聪明并“保存”虚拟机,这是一个状态boot2docker似乎不能正常恢复。 为了解决这个问题,进入VirtualBox,并closures虚拟机。 然后回到boot2docker并运行boot2docker up 。 现在vm已经正常关机,boot2docker应该能够把它启动。

首先执行boot2docker应用程序。 这设置了一些variables,并创build〜/ .boot2docker目录。 一旦完成,boot2docker向上/向下将为您工作。

接受的解决scheme并不适合我

我不得不导出boot2docker envvariables

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

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

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