Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

docker : When creating a machine, VT-X/AMD is enabled yet

I'm going through this tutorial

Dockerizing Flask With Compose and Machine - From Localhost to the Cloud

When trying to create a virtualbox with the command below

docker-machine create -d virtualbox dev;

I have the following error

Error creating machine : Error in driver during machine creation. This computer doesn't have VT-X/AMD enabled. Enabling it in the BIOS is mandatory

(Addendum: I'm running an ubuntu image on a virtual box. The physical host is a windows machine. The VT VT-X/AMD is enabled both , in the bios and in the virtualbox.)

Reading here and there, it seems to be a normal behavior because I'm trying to create a virtualbox within a virtualbox -> Click here for the explanation

What command should I use instead of docker-machine ?

Any insights are more than welcomed ...

Update: I've asked 3 additional questions to @VonC after his initial answer. Please find the questions below , in italic

1) How should I make the virtualbox and the docker config see that new "virtualbox"?

2) Will the ubuntu box, be able to do the docker-compose and build the container on that host?

3) If I'm pulling an image like debian, how can I use it as a machine and build an container on top of it?

like image 855
Andy K Avatar asked Jan 26 '16 14:01

Andy K


People also ask

Does Docker require Vt X?

This is a quick post to explain that by default Docker does not need hardware virtualization (VT-X).

Does Docker use virtualization Linux?

Docker depends on the Linux kernel to operate correctly. Since it doesn't virtualize components, its host OS needs to have access to the Linux kernel and other Linux components. That means you can only use Docker to run the Linux OS and not Windows or Mac OS.


2 Answers

If you do not want to change the BIOS settings, please run the below command. I have the same problem because I have Hyper-V manager installed in my Windows 8 server. To avoid this issue I ran the below with the below option

--virtualbox-no-vtx-check
Example: docker-machine create default --virtualbox-no-vtx-check
like image 115
Ravikiran Reddy Kotapati Avatar answered Sep 25 '22 08:09

Ravikiran Reddy Kotapati


I'm in a VM already , running ubuntu. Physical host is a windows machine

Then you don't need docker-machine.

You would create a small Linux image from windows with (again, type in a regular Windows CMD shell)

docker-machine create -d virtualbox dev

But on a full-fledged Ubuntu VM, you just need to install docker and run it directly.

If you need to use docker-machine, just copy (on Windows) v0.6.0-rc1/docker-machine_windows-amd64.exe as docker-machine.exe anywhere you want.
Also: set VBOX_MSI_INSTALL_PATH=C:\Program Files\Oracle\VirtualBox\ (if your VirtualBox is installed there)

You now can use docker-machine -d virtualbox dev.

2) Will the ubuntu box, be able to do the docker-compose and build the container on that host?

Yes, no issue there. The installation is straightforward.

3) If I'm pulling an image like debian, how can I use it as a machine and build an container on top of it?

You simply write a Dockerfile starting with FROM debian:jessie (see an example here), add some commands (RUN, COPY, ...): for instance:

FROM debian:stable
RUN apt-get update && apt-get install -y --force-yes apache2
EXPOSE 80 443
VOLUME ["/var/www", "/var/log/apache2", "/etc/apache2"]
ENTRYPOINT ["/usr/sbin/apache2ctl", "-D", "FOREGROUND"]

Build it (docker build .)and run it (docker run).

like image 41
VonC Avatar answered Sep 25 '22 08:09

VonC