Skip to content

Instantly share code, notes, and snippets.

@talon talon/README.md
Last active May 22, 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

Update

Hi!

We have now released a version of Docker Desktop Edge that allows users of Windows Insider Preview (Win Home 19018 or higher) to use Docker Desktop with WSL 2. If you are trying this out and have issues feel free to drop issues on the for-win Github Repo!

Thanks Ben

https://forums.docker.com/t/installing-docker-on-windows-10-home/11722/70

# 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.

@markhm

This comment has been minimized.

Copy link

markhm commented Mar 21, 2020

Many thanks, this worked.

The ExecutionPolicy can be reset to its original value with Set-ExecutionPolicy -ExecutionPolicy Undefined -Scope CurrentUser.

@Inbary-s

This comment has been minimized.

Copy link

Inbary-s commented Apr 17, 2020

Worked with no changes. Thank you!

@theeviljameswu

This comment has been minimized.

Copy link

theeviljameswu commented May 11, 2020

Docker installation went fine, but when I try to run docker pull hello-world in powershell with admin privileges, this error message appears:

error during connect: Get http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.40/containers/json: open //./pipe/docker_engine: The system cannot find the file specified. In the default daemon configuration on Windows, the docker client must be run elevated to connect. This error may also indicate that the docker daemon is not running.

Any input is appreciated...

@mvaldes14

This comment has been minimized.

Copy link

mvaldes14 commented May 16, 2020

Same issue as above, not exactly sure why. Everything went smootly on installing.
One thing i did notice is that the desktop app indicated it was using WSL2 backend and i do not have WSL2 yet.

Will poke around that see if i can disable it. (Its greyed out)

@ShishkinP

This comment has been minimized.

Copy link

ShishkinP commented May 22, 2020

@theeviljameswu

Docker installation went fine, but when I try to run docker pull hello-world in powershell with admin privileges, this error message appears:

error during connect: Get http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.40/containers/json: open //./pipe/docker_engine: The system cannot find the file specified. In the default daemon configuration on Windows, the docker client must be run elevated to connect. This error may also indicate that the docker daemon is not running.

Solved it by manually running 'dockerd.exe' located in 'C:\Program Files\Docker\Docker\resources'

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.