Docker CE and Windows Server compatibility? - docker

Taken from https://docs.docker.com/docker-for-windows/install/:
System Requirements:
Windows 10 64bit: Pro, Enterprise or Education (Build 15063 or later).
Virtualization is enabled in BIOS. Typically, virtualization is enabled by default. This is different from having Hyper-V enabled. For
more detail see Virtualization must be
enabled
in Troubleshooting.
CPU SLAT-capable feature.
At least 4GB of RAM.
As you see, it doesn't state which Windows Server versions are compatible. Does anyone know?
States here https://success.docker.com/article/compatibility-matrix however it does not state the CE edition.

This link tells you all windows server versions.
And from this, all microsoft documentation about windows container focus on Windows Server 2019 and Windows Server 2016.
And docker project starts from the year 2013, so the latest old version Windows Server 2012 (Not include 2016, 2019) I guess not support docker as kernel need to support that.

Related

Do I need Windows 10 Pro to run Docker? Error: Hardware assisted virtualization and data execution protection must be enabled in the BIOS

I just installed Docker after upgrading my Windows 10 Home x64 to the version 2004 with the OS build 19041.264 (I needed to upgrade because Docker required me to have an OS buld >19018). Now if I want to launch docker I get this error Hardware assisted virtualization and data execution protection must be enabled in the BIOS. I have already read this (it is old) question, but because they let me install docker on my windows 10 home I assume that I can somehow run it without hyper-v, cuz I can't download it.
The Hyper-V role cannot be installed on Windows 10 Home. Hyper-V is used to run Linux kernel on Windows.
https://learn.microsoft.com/en-us/virtualization/hyper-v-on-windows/quick-start/enable-hyper-v
The alternative solution is you can use Virtual box instead of Microsoft native Hyper-V. Docker toolbox comes with Virtual box. You can get details installation steps from below link.
https://docs.docker.com/toolbox/toolbox_install_windows/
You will need Windows 10 Pro to run docker. Home edition is not useful for the purpose.

Running Linux Docker Containers on Windows Server 2019

I am exploring docker for one of my company project. In this project I need to run the MemCached on CentOS and I prefer to run this in a docker container. I have successfully able to run this on Windows 10 machine with Docker Community Edition installed. But our project needs Windows Server 2019 in production and I want to run the container of same image (MemCached on CentOS) on windows server 2019. I googled a lot and found a link for running Linux Containers on Windows Server 2019. But as per the above link we are installing docker package in Preview version. I believe that this Preview version I should not use in Production. Is my understanding is correct or not?
Also is there any other stable released way to run Linux containers on Windows Server 2019.
Thanks in advance.
As per the Preview version you can remove the -RequiredVersion preview tag and then install. The process will install Docker Enterprise Edition on Server 2019 and not the CE version as the one for WIN 10.
If the container you want to run is a Linux container then you may face some tough times reason being
The containers(linux) runs on Server 2019 using LCOW way and the LCOW way is an experimental feature.
You said that you want to run container in Production environment and I would say not to use and experimental feature for Production.
Incase you need to run the containers on a server edition of Windows ie Server 2016 or Server 2019 you can go with the Docker CE (ie the same .exe that works on Win 10).
One important point to note is that on server 2016 all the docker versions are not supported.
Docker 2.0.0.31259 is the supported version of Docker on Server 2016.(Latest Docker 2.1.0.3 does not work on server 2016 but it works on Server 2019
Note : I face the same issues as you face ie you want the run the containers on Server 2019. The above are my findings so far. There is no clarity from windows side about how to run docker containers. Please refer to my answer :Here for better understanding
I'm struggling with the same issue for some time, and for me the only working combination of Windows Server and Docker that can effectively run with Linux containers is Windows Server 2019 Standard Edition with an edge release Docker Desktop Community 2.1.3.0 published on 2019-09-16.
The link to read about edge releases and to download them is:
https://docs.docker.com/docker-for-windows/edge-release-notes/
In my case, there was also an issue of nested virtualization, since my Windows Server is installed on VMware machine, and Docker requires Hyper-V inside Windows Server in order to work.
Fixed that issue according to instructions provided here:
https://doitfixit.com/blog/2014/03/06/qhyper-v-components-is-not-runningq-nested-in-vmware-workstation/
as far as my understanding goes, it is experimental feature, however it can be done and works quite OK.
The only requirement is that this feature works on server with hypervisor enabled.
Follow this link: https://www.altaro.com/msp-dojo/linux-containers-windows-server-2019/ for further instructions on how to set it up.

Can Docker containers run in Windows IoT Core

Is there a way to run a Docker container in Windows IoT Core? I have seen it can be used in Azure, Windows Server and desktop W10 but there is no evidence about Windows IoT Core and I am not sure if some of the already existing installations of docker-engine is compatible with IoT Core or it is just not possible.
Last Friday, Azure IoT Edge v2 launched in Public Preview yesterday with out-of-box support for native Windows containers! There is even a how-to for deploying on Windows IoT Core with a compatible x64-based board*.
First party modules like Azure Functions, Azure Stream Analytics, Modbus and a cool developer experience in VS Code for authoring custom modules all work great with Windows containers on both Windows 10 and IoT Core.
*Note: Windows containers require x64-based processor support, they won’t work on ARM32-based devices like Raspberry Pi.
As of IoT Core version 16299, released on 17 October, this feature is in preview.
https://developer.microsoft.com/en-us/windows/iot/docs/whatsnew
You can run Nano Server Core containers on 64-bit Windows 10 IoT core. It is likely to be amd64 only at this point.
The short answer is, no. This is because Windows 10 IoT Core is an OS that supports a set of features that overlap with Windows 10 desktop, but there is no version of Docker that runs on that currently. Off the top of my head, there would be a few concerns with creating such a version. First, the implementation of Docker would have to be runnable (use features that the OS supports), and second, the features utilized in the container would need to be virtualized by Docker in form that are supported in Windows 10 IoT Core. Third, the hardware running Windows 10 IoT Core (and Docker and its container) would have to support all these functions. Maybe some do and some don't. The problem might be whether or not the hardware such as a Raspberry Pi or Minnowboard supports virtualization in a way that this would be a practical scenario.

Running docker and 64 bit linux VM on my host windows10

As you all know Docker runs natively on windows 10 OS. This requires Hyper-V to be enabled. I did that and docker is running fine on my win 10. I wanted to run a 64 bit linux VM on my win 10. So I downloaded the oracle virtual box and ubuntu iso and when I opened the oracle vb it was showing only 32-bit guest versions. When I checked the online info, it recommends to turn off the Hyper-V for 64-bit guest versions to appear. I did that and was able to install the 64 bit ubuntu VM on my win 10 but it broke my docker running on win 10.
Is there any way where we can have both docker running and 64 bit virtual machine installed and running on my guest win 10 OS ??
It is not possible to run Hyper-V and Virtualbox at the same time. If Hyper-V is installed on the system then VT-x is not available for VirtualBox.
I have heard of workarounds, that make switching easy, but you have to reboot the system every time.
Ubuntu is supported on Hyper-V. This question on Microsoft forums suggests Hyper-V doesn't really care if you install a 32 bit or 64 bit OS in the virtual machine.
There are a lot of tutorials online on how to create a Hyper-V Linux virtual machine, 5 steps to create Ubuntu Hyper V Image seems as good as any.
Is there any way where we can have both docker running and 64 bit virtual machine installed and running on my guest win 10 OS ??
Double-check with VirtualBox 6.0.x (starting Dec. 2018):
the ten-years old ticket 4032 "[feature-request] Nested Virtualization: VT-in-VT" is still active
there is now an "experimental feature":
2.34. Using Hyper-V with Oracle VM VirtualBox
Oracle VM VirtualBox can be used on a Windows host where Hyper-V is running. This is an experimental feature.
No configuration is required. Oracle VM VirtualBox detects Hyper-V automatically and uses Hyper-V as the virtualization engine for the host system. The CPU icon in the VM window status bar indicates that Hyper-V is being used.
Note
When using this feature, you might experience significant Oracle VM VirtualBox performance degradation on some host systems.

Where is windows server 2012 container feature

I have read on some forums and tutorials that windows server offers a containers feature. I suppose this is a kind of "docker" but for windows.
I tried to add the feature in the server manager but the container item is not available.
Is it because a i need a special edition or version of windows server ?
Or is there a way to download the feature ?
The container feature is only available starting with Windows Server 2016 which is not released yet but you can test it with the technical preview versions of it
See the FAQ for it:
What are the prerequisites for Windows Server Containers and Hyper-V
Containers?
Both Window Server Containers and Hyper-V Containers require Windows
Server 2016. These technologies will not work with previous versions
of Windows.

Resources