我运行如下命令:
docker-machine --debug create -d "virtualbox" default
我明白了
Error creating machine: Error in driver during machine creation: This computer doesn't have VT-X/AMD-v enabled. Enabling it in the BIOS is mandatory
这是我的环境
helios@mtl-helios:~$ docker --version
Docker version 1.9.0, build 76d6bc9
helios@mtl-helios:~$ docker-machine --version
docker-machine version 0.5.0 (04cfa58)
helios@mtl-helios:~$ vboxmanage --version
5.0.8r103449
helios@mtl-helios:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 14.04 LTS
Release: 14.04
Codename: trusty
如果有人能指点我解决这个问题,那就太好了。
这是 --debug 输出: https ://gist.github.com/GiantEnemyCrab/633c6c7e9f8fd929d348
这是 VBox.log: https ://gist.github.com/GiantEnemyCrab/43f3f9990af26deec4c8
嗨@GiantEnemyCrab
我相信错误消息会告诉您出了什么问题以及该怎么做:
This computer doesn't have VT-X/AMD-v enabled. Enabling it in the BIOS is mandatory
您需要进入笔记本电脑的 BIOS 并启用 VT-X/AMD-v。
感谢您的回复! 实际上,我在 vmware 上,它是无头的虚拟机之一。 我不是机器的管理员,但我想仍然可以配置它?
那么,您是_inside_ 一个VMWare VM 并试图在其中启动virtualbox?
如果是这样,它不太可能起作用。 虚拟化内部的虚拟化通常不起作用。
是的,我在虚拟机服务器(不是物理服务器)上,并尝试使用该虚拟机内的 virtualbox docker 创建 docker 机器。
我确实有 VMware Fusion 内部的 VirtualBox 在我的笔记本电脑上的虚拟机上工作,但您必须在“首选项”菜单中切换虚拟机的设置才能使嵌套虚拟化工作。
@GiantEnemyCrab如果我们的 VTX 检查阻止您在原本可以创建 VM 的情况下(例如使用旧版本的机器),那么我们应该修复它,但请检查以确保创建任何 VM 都可以正常工作。
感谢你们到目前为止的反馈。
较旧的版本,我可以尝试 0.4.1 或 0.4.0 并返回这里结果。
嗨@GiantEnemyCrab ,在 0.5.0 版之前,虚拟机正在循环尝试 ssh 连接,因为虚拟机实际上无法启动。 对于 0.5.0 版,现在会显示确切的错误。
好的,我不知何故将 virtualbox 的版本切换到默认的 4.3,让我再次尝试使用 5.0.8,对此感到抱歉,并且会返回一些结果。
为确保创建的虚拟机确实存在问题,您可以使用VBoxManage controlvm vm_name screenshot.png screen.png
捕获其屏幕
谢谢@dgageot ,我得到了截图。 并且在docker鲸ascii art之前有一条消息说:
This kernel requires an x86-64 CPU, but only detected an -686 CPU.
Unable to boot = please use a kernel appropriate for your CPU.
在这种情况下,至少,VM 是使用 0.4.1 创建的?
但奇怪的是,CPU确实是x86_64。
helios@mtl-helios:~$ uname -a
Linux mtl-helios 3.13.0-24-generic #46-Ubuntu SMP Thu Apr 10 19:11:08 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
Emmmm,我该如何前进?
嗨@GiantEnemyCrab事情是你正在运行VirtualBox _inside_ VMWare VM。 因此,即使主机是启用了硬件虚拟化的 x86-64,Virtualbox 也很有可能无法使用这些 VT-X 指令。
@nathanleclaire你是怎么做到的?
单击VM =>“虚拟机”菜单=>首选项=>处理器和内存=>高级选项=>在此虚拟机中启用管理程序应用程序
非常感谢您的洞察力!
事实证明,由于我已经在 Ubuntu 中,我真的不需要做 virtualbox 的东西。 我可以通过拉取图像来 docker create / docker run,例如 postgres,它可以运行得很好。
我盲目地尝试遵循专门针对 windows / mac 的说明,但看起来我并不需要初始的 docker-machine create default 部分。
请确认,我认为关于 VT-X 等的错误消息在 docker-machine v0.5.0 中是合适的。 在这种情况下,票可以关闭。
但是, @nathanleclaire的偏好编辑也是一个很好的参考。
@GiantEnemyCrab太棒了! 那么让我们关闭这张票。
大家干得好:+1:
这个解决方案对我有用。(Window 10/8)
在使用 Oracle VirtualBox 运行 Ubuntu OS VM 的 Windows 7 Enterprise 笔记本电脑上遇到同样的问题。
但是,我确实看到在我的 Windows 笔记本电脑和 Ubuntu VM 上启用了虚拟化。 Oracle VirtualBox 包括系统加速设置:VT-x/AMD-V、嵌套分页、Ubuntu VM 上的 Hyper-V 准虚拟化,我也尝试了默认的准虚拟化,但没有用。
我的 windows 笔记本电脑(有自己的 windows 操作系统 - docker 问题)能够在我的笔记本电脑上创建的 docker-machine 上启动 docker 容器,但不能在 Ubuntu VM 上,
如果我在我的 Ubuntu VM 上使用 docker-machine 命令,一切都会搞砸。
root@hyper-VirtualBox:/home/hyper# docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS
default - virtualbox Stopped Unknown
root@hyper-VirtualBox:/home/hyper# docker-machine start default(default) Starting VM...
This computer doesn't have VT-X/AMD-v enabled. Enabling it in the BIOS is mandatory
root@hyper-VirtualBox:/home/hyper# docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS
default * virtualbox Running Unknown Something went wrong running an SSH command!
command : ip addr show dev eth1
err : exit status 255
output :
root@hyper-VirtualBox:/home/hyper# docker-machine -v
docker-machine version 0.5.3, build 4d39a66
VMWare 工作站/Fusion - Ubuntu 虚拟机(64 位 16.04)
单击VM =>“虚拟机”菜单=>首选项=>处理器和内存=>高级选项=>在此虚拟机中启用管理程序应用程序
sudo apt-get install virtualbox
https://github.com/docker/labs/blob/master/swarm-mode/beginner-tutorial/swarm-node-vbox-setup.sh
./swarm-node-vbox-setup.sh
工作得很好。
$ sudo docker-machine create --driver virtualbox manager1
运行预创建检查...
预创建检查出错:“此计算机未启用 VT-X/AMD-v。必须在 BIOS 中启用它”
请注意我使用的是 AWS ubuntu 16.04 机器
请指导我如何通过 CLI 尽快解决 ubuntu 16.04 中的此错误
最有用的评论
单击VM =>“虚拟机”菜单=>首选项=>处理器和内存=>高级选项=>在此虚拟机中启用管理程序应用程序