docker-machine - 无法成功创建docker机器:创建机器

时间:2018-02-17 11:54:34

标签: docker virtualbox docker-swarm docker-machine

我接着开始使用docker教程并进入第4部分,您需要使用virtualbox(https://docs.docker.com/get-started/part4/#create-a-cluster)创建docker机器,但是当我尝试创建它时,它会失败。

首先我使用了带有docker的5.0 virtualbox。每次我尝试创建VM时,这都会导致我的Ubuntu桌面冻结。我必须重新启动PC才能使其正常工作。然后我安装了较新版本的virtualbox:Version 5.2.6 r120293 (Qt5.6.1)

现在尝试使用docker创建VM时,PC不会冻结,但仍无法成功创建VM。

运行此命令:

docker-machine create --driver virtualbox myvm1

我得到了这个输出:

Running pre-create checks...
Creating machine...
(myvm1) Copying /home/oerp/.docker/machine/cache/boot2docker.iso to /home/oerp/.docker/machine/machines/myvm1/boot2docker.iso...
(myvm1) Creating VirtualBox VM...
(myvm1) Creating SSH key...
(myvm1) Starting the VM...
(myvm1) Check network to re-create if needed...
Error creating machine: Error in driver during machine creation: Unable to start the VM: /usr/bin/VBoxManage startvm myvm1 --type headless failed:
VBoxManage: error: The virtual machine 'myvm1' has terminated unexpectedly during startup with exit code 1 (0x1)
VBoxManage: error: Details: code NS_ERROR_FAILURE (0x80004005), component MachineWrap, interface IMachine

现在打开virtualbox并尝试通过virtualbox界面运行“已创建”的VM也会失败。它说:

RTR3InitEx failed with rc=-1912 (rc=-1912)

The VirtualBox kernel modules do not match this version of VirtualBox. The installation of VirtualBox was apparently not successful. Executing

'/sbin/vboxconfig'

may correct this. Make sure that you do not mix the OSE version and the PUEL version of VirtualBox.

where: supR3HardenedMainInitRuntime what: 4 VERR_VM_DRIVER_VERSION_MISMATCH (-1912) - The installed support driver doesn't match the version of the user.

运行sudo /sbin/vboxvonfig也无济于事。该错误是否表明我为我的操作系统安装了不正确的虚拟机?或者它意味着什么呢?

我的操作系统是Ubuntu 16.04,我下载了这个虚拟框:https://download.virtualbox.org/virtualbox/5.2.6/virtualbox-5.2_5.2.6-120293~Ubuntu~xenial_amd64.deb

P.S。如果重要的是我运行的操作系统(在我的电脑中)不在虚拟机内。

1 个答案:

答案 0 :(得分:0)

当我安装virtualbox 5.2时,似乎有一些来自virtualbox 5.0的剩余部分。所以这引起了上述问题。

因此,对于任何有类似问题的人,当一个版本意外挂起你的PC而另一个版本与旧版本混淆时,你可以尝试这样做(它帮助了我。看起来它与旧的linux头文件有关了解新的虚拟机?):

sudo apt-get purge virtualbox-*.* dkms linux-headers-$(uname -r)  # (where * is specified version)
sudo apt-get install linux-headers-$(uname -r)
sudo apt-get install virtualbox-*.*

发现于:https://askubuntu.com/questions/205154/virtualbox-etc-init-d-vboxdrv-setup-issue

然后它应该解决不匹配的版本错误。

<强> P.S。 虽然请注意您是否已尝试使用docker-machine创建VM(然后将其删除)。创建新VM时,它可能会给您带来另一个错误。它与证书有关。

对我来说,证书保持不变,即使我删除了不工作的虚拟机。它可能是检查旧证书,因为我使用相同的虚拟机名称?

所以它给了我这个新错误:

Copying certs to the local machine directory...
Error creating machine: Error running provisioning: error generating server cert: tls: failed to find any PEM data in certificate input

要解决此问题,您可以删除/home/user/.docker/machine/certs目录。之后,当您启动新VM时,它将重新生成新证书,不应再引发此错误。