Docker – Running a Linux docker container inside a Windows Server provisioned through Xen on CentOS (Can it be done?)

dockerwindows-server-2012-r2xen

How do you properly propagate VT-X through physical hardware into a server provisioned via Xen so that virtualized docker can be run inside the virtual Windows server?

L0 is Xen running inside CentOS.
L1 is Virtual Box running inside Windows Server 2012 inside Xen.
(theoretically) L1 is hosting boot2docker running on TinyCore running inside VirtualBox running inside Windows Server 2012 R2 running inside Xen running inside CentOS. Boot2Docker requires VT-X to be enabled and the L0 setting is not propagating through L1 so that it can be made available to L2.

[Edit]

A member of my server provisioning team just informed me that xenserver doesn't support Nested Virtualization through a Windows Server virtual instance and that Nested Virtualization is available only to Linux virtual servers. Can anyone confirm or refute this?


A touch of background: I had our server provisioning team produce a new virtual Windows Server for me to develop against. I am trying to initially configure this thing as a single tier for my source, lab, development, build and CI environments as well as my internal www server(IIS) for service host applications coming out of development.

A piece of my desired configuration is reliant on a Linux docker container and this is where I ran into a problem. As I was starting up my Docker Machine, I received the virtualization error

(default) This computer doesn't have VT-X/AMD-v enabled. Enabling it in the BIOS is mandatory

When I installed Docker Machine on a different physical development box, I just went into the BIOS, enabled hardware virtualization and Moved On With My Life.

Now that I'm wanting to run Docker Machine through a virtual server, I need to find a way to propagate the VT-X setting of the hardware CPU into the virtual CPUs of the server provisioned through Xen.

Is this possible?

Best Answer

I can confirm your edit i might be wrong as mentioned in the previous answer, but you won't need vt-x to run docker containers, you might have two options. One to run Virtualbox in your windows server, because you might be able to use x32 virtual machines in it without vt-x enabled, and then have docker installed in a linux vm, or wait until docker will be able to run on windows without vt-x, as mentioned here https://stackoverflow.com/questions/30198189/can-i-run-docker-directly-on-a-non-vt-x-machine-no-virtual-machine-used