34

boot2dockerstart|一起运行 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

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

4

10 回答 10

43

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

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

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

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

于 2014-10-26T10:41:47.080 回答
36

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

我还没有看到这个问题是否继续存在,或者是否有类似的解决方案,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 虚拟机:

$ boot2docker up

Waiting for VM and Docker daemon to start...
.................ooo
Started.
于 2014-12-19T10:35:14.910 回答
13
  • 错误:

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

  • 解决方案:

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

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

  2. boot2docker 初始化

  3. boot2docker 启动

  4. 码头工人ps -a

于 2014-11-02T01:41:18.380 回答
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、、和)的 Virtual Box 映像CfgFile,并使用 Virtual Box 启动该映像,然后将其完全关闭。BaseFolderSerialFile

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

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

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

高温高压

于 2014-10-27T16:38:42.427 回答
2

这对我有用:

vboxmanage discardstate boot2docker-vm
boot2docker up
于 2015-04-12T09:13:49.397 回答
1

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

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

于 2015-01-25T21:51:55.120 回答
0

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

于 2014-12-07T00:45:32.370 回答
0

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

我必须导出 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
于 2015-04-15T12:28:23.170 回答
0

目前接受的对这个问题的回答是完全删除 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 应该能够正常启动它。

于 2014-12-02T02:05:30.927 回答
0

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

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

于 2015-08-10T10:17:24.067 回答