If you want to run Docker for Windows, you will need to be running one of these specific Windows 10 SKUs. These include Windows 10 Professional, Windows 10 Enterprise, Windows 10 Pro for Workstations, or Windows 10 Education Edition. Since Docker for Windows requires Microsoft Hyper-V, you will also need a processor on your host machine that supports second level address translation (SLAT) in order to run Hyper-V. You will also want/need SLAT support for pretty much any other hypervisor that you may be using.
This should not be a problem in most cases, since nearly all systems that are running Windows 10 will have a new enough Intel or AMD processor so that SLAT support won’t be an issue. For AMD, SLAT support, which they call Rapid Virtualization Indexing (RVI), was introduced in the Barcelona microarchitecture in late 2007. For Intel, SLAT support, which they call Extended Page Tables (EPT), was introduced with the Westmere microarchitecture in early 2010.
Checking for SLAT Support
If you want to actually check your system to confirm that you have SLAT support in your processor (before you install Hyper-V), here is how to do it:
1. Download Coreinfo from this link
2. Extract the zip file, and then copy the Coreinfo.exe file to the root of your C: drive
3. Open a command prompt as an administrator
4. Navigate to the root of your C: drive in the command prompt
5. Run this command: coreinfo –v
6. The –v switch shows virtualization-related features
If you see an asterisk on the feature line, that means the processor supports that feature. If there is a dash on the feature line, the processor does not support that feature. You want to look at the EPT line for Intel or the NP line for AMD. This tells you whether your processor has second level address translation support.
Figure 1: Results of Coreinfo –v on an Intel Core i7-8700K Processor
If you already have Hyper-V installed, you will get inaccurate results, as shown in Figure 2. Just to be clear, this AMD processor does have SLAT support, but the fact that Hyper-V is running gives the wrong results.
Figure 2: Results of Coreinfo –v on an AMD Ryzen Threadripper 2950X Processor
You must have second level address translation support in order to run Docker for Windows since that is a Hyper-V requirement. This is actually a good thing, since second level address translation support gives you better virtualization performance.