docker-机器 - 无法成功创建 docker 机器:创建机器时出错
docker-machine - cant successfully create docker machine: Error creating machine
我遵循了 docker 的入门教程并到达了第 4 部分,您需要使用 virtualbox (https://docs.docker.com/get-started/part4/#create-a-cluster) 创建 docker 机器,但是当我尝试创建它时,它失败。
首先我使用 5.0 virtualbox 和 docker。这导致我的 Ubuntu 桌面在我每次尝试创建 VM 时都冻结。我必须重新启动 PC 才能使其正常工作。然后我安装了较新版本的 virtualbox:Version 5.2.6 r120293 (Qt5.6.1)
.
现在用docker创建虚拟机时,电脑不卡顿,但仍然无法成功创建虚拟机。
运行 这个命令:
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 界面 运行 "created" 虚拟机也失败了。它说:
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
也无济于事。该错误是否表明我为 OS 安装了错误的 virtualbox?还是其他意思?
我的 OS 是 Ubuntu 16.04
我下载了这个 virtualbox:https://download.virtualbox.org/virtualbox/5.2.6/virtualbox-5.2_5.2.6-120293~Ubuntu~xenial_amd64.deb
P.S。如果这很重要,我的 运行ning OS(在我的 PC 中)不在虚拟机中。
安装 virtualbox 5.2 时,似乎有一些 virtualbox 5.0 的残留物。所以这引起了提到的问题。
所以对于任何遇到类似问题的人,当一个版本意外挂起您的 PC 而另一个与旧版本遗留的混在一起时,您可以尝试这样做(它帮助了我。看起来它与旧 linux headers 不知道新的 virtualbox?):
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 时,它将重新生成新的证书并且不应再引发此错误。
我遵循了 docker 的入门教程并到达了第 4 部分,您需要使用 virtualbox (https://docs.docker.com/get-started/part4/#create-a-cluster) 创建 docker 机器,但是当我尝试创建它时,它失败。
首先我使用 5.0 virtualbox 和 docker。这导致我的 Ubuntu 桌面在我每次尝试创建 VM 时都冻结。我必须重新启动 PC 才能使其正常工作。然后我安装了较新版本的 virtualbox:Version 5.2.6 r120293 (Qt5.6.1)
.
现在用docker创建虚拟机时,电脑不卡顿,但仍然无法成功创建虚拟机。
运行 这个命令:
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 界面 运行 "created" 虚拟机也失败了。它说:
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
也无济于事。该错误是否表明我为 OS 安装了错误的 virtualbox?还是其他意思?
我的 OS 是 Ubuntu 16.04
我下载了这个 virtualbox:https://download.virtualbox.org/virtualbox/5.2.6/virtualbox-5.2_5.2.6-120293~Ubuntu~xenial_amd64.deb
P.S。如果这很重要,我的 运行ning OS(在我的 PC 中)不在虚拟机中。
安装 virtualbox 5.2 时,似乎有一些 virtualbox 5.0 的残留物。所以这引起了提到的问题。
所以对于任何遇到类似问题的人,当一个版本意外挂起您的 PC 而另一个与旧版本遗留的混在一起时,您可以尝试这样做(它帮助了我。看起来它与旧 linux headers 不知道新的 virtualbox?):
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 时,它将重新生成新的证书并且不应再引发此错误。