如何解决“运行中的错误:无法获得机器”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
- 解:
/ /警告:这将删除所有的图像
-
rm -rfi〜/ VirtualBox \ VMs / boot2docker-vm /
-
boot2docker初始化
-
boot2docker启动
-
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( Iso
, CfgFile
, BaseFolder
和SerialFile
)的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 exist
的error 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。