Skip to content

Instantly share code, notes, and snippets.

@talon talon/README.md
Last active Feb 17, 2020

Embed
What would you like to do?
Install Docker On Windows 10 Home

Install Docker On Windows 10 Home

"Windows Home Docker Desktop requires Windows 10 Pro or Enterprise version 15063 to run." So says the Docker Installer however, the Docker forums beg to differ

The workaround is to manually image the Hyper-V and Containers features, then trick the installer into thinking you're using Windows Pro.

TL;DR

  1. clone this gist somewhere locally git clone https://gist.github.com/4191def376c9fecae78815454bfe661c.git windows_home_docker
  2. Run windows_home_containers.ps1 in an Administrative Powershell
  3. Restart your computer
  4. Run windows_home_docker.ps1 in an Administrative Powershell

Note: You may need to run Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser for Windows to let you execute the scripts

# Manually provision Windows Home by adding packages from C:\Windows\servicing\Packages to DISM
# (https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/dism---deployment-image-servicing-and-management-technical-reference-for-windows
function Import-Feature {
param( $Name )
$packages = Get-ChildItem "C:\Windows\servicing\Packages\*$Name*.mum"
foreach ($package in $packages) {
Dism /online /NoRestart /Add-Package:"$package"
}
Dism /online /NoRestart /Enable-Feature /FeatureName:$Name -All /LimitAccess /ALL
}
# Windows Home must be manually imaged with the required Docker Desktop features
Import-Feature -Name Microsoft-Hyper-V
Import-Feature -Name Containers
Write-Output ""
Write-Output "You may now restart your computer and use windows_home_docker.ps1 to install Docker"
# The Docker Desktop Installer assumes that only Windows Pro users have Hyper-V
# in order to skip that check, temporarily update the EditionID registry key to Professional
$windowsNT = 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion'
$EditionID = (Get-ItemProperty $windowsNT).EditionID
Set-ItemProperty -Path $windowsNT -Name 'EditionID' -Value 'Professional'
Write-Output ''
Write-Output '==========================================================================================='
Write-Output "EditionID has been temporarily changed from $EditionID to Professional "
Write-Output 'You may now run the Docker Desktop Installer '
Write-Output ' '
Write-Output "When you're done, confirm the following prompt to revert your EditionID back to $EditionID "
Write-Output '==========================================================================================='
Write-Output ''
Set-ItemProperty -Confirm -Path $windowsNT -Name 'EditionID' -value $EditionID
Write-Output ""
Write-Output "All finished! Happy hacking!"
@pkscout

This comment has been minimized.

Copy link

pkscout commented Feb 6, 2020

Thanks for this. Just one note. At least on my Windows 10 Home machine I had to enable script execution for the scripts to run.

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

@ouichichi

This comment has been minimized.

Copy link

ouichichi commented Feb 12, 2020

+1 for the script enabling mention.
I don't know why, but on my machine the containers script keeps on looping forever... Any ideas how to fix this?

@lhocke

This comment has been minimized.

Copy link

lhocke commented Feb 13, 2020

Works great thanks!

I did think the first script was running an infinite loop at first but it was just pulling in a lot of packages

@kevgk

This comment has been minimized.

Copy link

kevgk commented Feb 15, 2020

Very nice, thanks!

I had to set ExecutionPolicy to Unrestricted though.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.