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

Chr*_*now 34 macos docker boot2docker

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
Run Code Online (Sandbox Code Playgroud)

init错误是略有不同

snowch$ boot2docker init
error in run: Failed to initialize machine "boot2docker-vm": exit status 1
Run Code Online (Sandbox Code Playgroud)

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

Chr*_*now 43

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

snowch$ rm -rfi ~/VirtualBox\ VMs/boot2docker-vm/
Run Code Online (Sandbox Code Playgroud)

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

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

  • 对我来说,问题是我必须更新VirtualBox想要存储VM映像的位置.一段时间后我移动了我的主目录,因此VirtualBox试图写入一个不存在的目录. (2认同)

Pat*_*ing 36

更新: Boot2Docker现在已成为传统.请参阅此处获取官方弃用通知:https://docs.docker.com/installation/mac/,以及有关将预先存在的Boot2Docker vm迁移到Docker计算机的信息: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"
}
Run Code Online (Sandbox Code Playgroud)

注意: "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"
}
Run Code Online (Sandbox Code Playgroud)

注意: "State": "poweroff".

启动了boot2docker VM:

$ boot2docker up

Waiting for VM and Docker daemon to start...
.................ooo
Started.
Run Code Online (Sandbox Code Playgroud)


Mah*_*alt 13

  • 错误:

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

  • 解:

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

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

  2. boot2docker init

  3. boot2docker启动

  4. docker ps -a


小智 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"
}
Run Code Online (Sandbox Code Playgroud)

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

如果没有,使用返回的信息,以确定您的虚拟盒图像boot2docker( ,,Iso 和),并使用虚拟箱启动图像,然后完全关闭它.CfgFileBaseFolderSerialFile

如果你没有问题,此操作则boot2docker -v info应该给你State的的boot2docker-VM(即,它应该是poweroff在这一点).

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

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

HTH