使用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
我该如何解决这个问题?
答案 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
//警告:这会删除所有图片
rm -rfi~ / VirtualBox \ VMs / boot2docker-vm /
boot2docker init
boot2docker start
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(Iso
,CfgFile
,BaseFolder
和SerialFile
)的虚拟盒图像并使用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。