Docker for Windows 10 Home - docker

So here's the thing, I'm trying to install Docker but I can't get Hyper-V because I have Windows 10 Home. Is there any solution to run Docker normally? Except using Windows Subsystem for Linux I don't like that option... Any help would be appreciated!

You can download hyper-v on windows home edition using some scripts and it works
Follow steps shown in below link
https://beebom.com/install-hyper-v-on-windows-10-home/

Related

Docker failed to initialize, Docker Desktop is shutting down win10 Home

ErrorI got an error Docker failed to initialize, Docker Desktop is shutting down.
I uninstalled then restart my computer then I reinstalled again with admin. But couldnt solve this error. I used Windows 10 Home Single Language
How can I solve this error? (I attached screenshot)
Thanks
In windows 10 home, hiperv(hypervisor) to available(but you can also enable it). so you have to use wsl, so follow this guide on how to install docker desktop with wsl.
if you followed the guide, please check,
Windows subsystem for Linux
Virtual Machine Platform
are enabled in Windows features, check this guide if you don't know how to enable them.

Issues while installing Docker on Windows 10 home edition

I am getting below error When I try to install Docker on Windows 10 Home Edition.
[21:20:49.129] [InstallWorkflow] Pre-requisite failed: Docker for Windows requires Windows 10 Pro or Enterprise version 14393, or Windows server 2016 RTM to run
Can I Install Docker on Windows 10 Home Edition?
Edit Windows Version in Registry
Press Windows + R and write regedit
In the Registry Editor, go to \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion
Right-click on EditionID and Click Modify
Change Value Data to "Professional"
Press OK.
Install Docker
After the installation, you can change the EditionID back to "Core"
As the error says, you cannot use Docker in the Home edition. You need "Windows 10 Pro or Enterprise version 14393, or Windows server 2016 RTM."
Check out their documentation here, which mentions, on 04/05/2018:
The current version of Docker for Windows runs on 64bit Windows 10
Pro, Enterprise and Education (1607 Anniversary Update, Build 14393 or
later).
As already mentioned in the comments, you might want to try the legacy Docker Toolbox:
Docker Toolbox is for older Mac and Windows systems that do not meet
the requirements of Docker for Mac and Docker for Windows.
Docker for Windows requires Hyper-V which is not included in Home edition.
You'll need to upgrade Windows to the Education or Pro edition.
https://docs.docker.com/docker-for-windows/install/#what-to-know-before-you-install
Also see this comment on GitHub.
You can already install Docker Desktop on Windows 10 Home.
This is how I did it:
You need to join Windows Insiders Program because you need WSL 2
You need to download the specific version of Docker Desktop: https://download-stage.docker.com/win/edge/41944/Docker%20Desktop%20Installer.exe which has a required change - allows install it on Windows 10 Home.
Those who have Windows Home Edition can now download and install Docker Desktop from below link.
https://docs.docker.com/docker-for-windows/install-windows-home/
Although not on Win10 Home per se, for evaluation purposes you can install Docker Desktop on a Win10 Pro virtual machine (VMWare player is my personal choice). You'll need to install VMWare Workstation Player which is free, and obtain a perfectly legal Win10 Pro image from microsoft directly here: https://www.microsoft.com/en-us/software-download/windows10
Be sure to activate the virtualization engine of the machine as Docker relies on Hyper-V:
This is how I resolved the problem. (OS- windows 10 home)
Join windows insider program. It enables you to update latest content of windows 10. You can find it in the start-> settings. Make sure to select Release Preview in the Insider program.(otherwise you will not get latest updates. After the installation you can pause frequent updates)
Check for windows update and update windows to latest version.(This will take awhile)
Install WSL 2 Linux kernel
https://learn.microsoft.com/en-us/windows/wsl/wsl2-kernel
I had below issue because I have tried to install this before updating windows. Please read the document carefully and follow steps.
If the installer cant find WSL 1 right click the Linux kernel update
installer, then press uninstall then rerun the installer
Now you are ready to update to WSL 2. Follow steps of this doc
https://learn.microsoft.com/en-us/windows/wsl/install-win10
Open PowerShell as Administrator and run:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
Enable the 'Virtual Machine Platform'
Open PowerShell as Administrator and run:
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
Restart your machine to complete the WSL install and update to WSL 2.
You can verify whether this by looking at task manager.
*Set WSL 2 as your default version
In PowerShell: wsl --set-default-version 2
Now you can install docker desktop version.
Finally https://docs.docker.com/docker-for-windows/
This might not work for some. If you find any issues please post. I'll try to help.
This might help someone who cannot upgrade their system to pro or professional. Consider installing Docker Toolbox on Windows. For mac users: Docker Toolbox on Mac
Legacy desktop solution. Docker Toolbox is for older Mac and Windows systems that do not meet the requirements of 'Docker Desktop for Mac' and 'Docker Toolbox on Windows'. We recommend updating to the newer applications, if possible.
As per documentation, the toolbox includes these Docker tools:
Docker Machine for running docker-machine commands
Docker Engine for running the docker commands
Docker Compose for running the docker-compose commands
Kitematic, the Docker GUI
a shell preconfigured for a Docker command-line environment
Oracle VirtualBox
Get the latest update from https://www.microsoft.com/en-us/software-download/windows10 and it will work.
First of all I'd like to thank the previous respondents to this questions - saved me a lot of time and yes, they are both correct.
Secondly as a small completion to their answer, in case you are wondering where you can get a Pro version of Windows without breaking the bank, you can get a relatively cheap and legal Windows 10 pro cd-key from ebay and upgrade you version from Windows settings -> Activation.
https://www.ebay.com/sch/i.html?_from=R40&_nkw=windows+10+pro&_sacat=0&_sop=15
Just make sure you read the sold product description well and eventually the reviews if there are so that you know what to expect (if you encounter any issue, ebay will refund your purchase).
Best of luck to you all!

Docker installation error on windows

I am trying to install Docker client on windows but when i start the installer i get the below pop up .
Can someone please guide me what should the solution to this issue be.
I am using windows 7 enterprise, 64 bit.
Thanks in advance.
Docker requires Windows 10. If you are using Windows 7, use Docker toolbox from the following location
https://docs.docker.com/toolbox/overview/.
As you install the toolbox, automatically the VM virtual box also will get installed. Atleast, that is what happened to me.
After installation, my docker container did not start properly.
So, I uninstalled the VM virtual box, installed it again, then started the kitematic and it was all a great flow to see my docker up and running!
Couple of the links that helped me gain better understanding:
https://github.com/docker/machine/issues/4066
https://github.com/docker/toolbox/issues/291

How to use Kitematic with Hyper-V enabled?

I have installed Docker for Windows (running Windows 10). Out of the box, Docker would not install an image on Hyper-V but I was able to get it work.
Edit: I acquired Kitematic via the link from this screen:
Upon clicking download, I get a zip file via http.
Next, I copied Kitematic zip contents to c:\program files\docker\kitematic. When I run Kitematic from Docker menu, it gives me an error stating:
VirtualBox is not installed. Please install it via the Docker Toolbox.
I don't want to use VirtualBox, if at all possible because I have other software that uses Hyper-V.
Is it possible to get Kitematic to use Hyper-V?
Thanks,
You only need to delete Kitematic folder in %APPDATA% (C:\Users\{User}\AppData\Roaming) and run Kitematic again.
Next scenario worked for me:
disable hyper-v feature in windows
reinstall docker toolbox with Kitematic
reboot PC
run Kitematic
got to Settings -> uncheck "use virtualbox instead of native on next restart"
enable hyper-v back
restart PC
start Docker for windows
run Kitematic
Some of these steps may be redundant but it helped in my case.
I believe there must be some file or setting to tell Kitematic to use hyper-V instead of virtualbox provider but I wasn't managed to find another way of changing it.

Linux Docker container on Windows Server 2016

What is the way to run Linux docker container on Windows Server 2016? With Docker for Windows it easy to do in Windows 10. Is the only way to install Docker Toolbox and ignore the build-in containers feature all together?
It is possible to use Linux containers on W2016. It's a bit hacky though. User "Algore" described it here but I've copied it into this answer, of course.
Download "Docker for Windows": https://docs.docker.com/docker-for-windows/
Install "Docker for Windows" on Windows 10 Pro.
Copy C:\Program Files\Docker from the Windows 10 machine to C:\Program Files on your Server 2016 box.
On the W2016 box run install-windowsfeature hyper-v,containers
Copy these registry entries to a file and import them on your Server 2016 box (reg import):
---START---
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Docker Inc.]
[HKEY_LOCAL_MACHINE\SOFTWARE\Docker Inc.\Docker]
[HKEY_LOCAL_MACHINE\SOFTWARE\Docker Inc.\Docker\1.0]
"AppPath"="\"C:\Program Files\Docker\Docker\Docker for Windows.exe\""
"BinPath"="\"C:\Program Files\Docker\Docker\resources\bin\""
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\Application\DockerService]
"EventMessageFile"=hex(2):43,00,3a,00,5c,00,57,00,69,00,6e,00,64,00,6f,00,77,\
00,73,00,5c,00,4d,00,69,00,63,00,72,00,6f,00,73,00,6f,00,66,00,74,00,2e,00,\
4e,00,45,00,54,00,5c,00,46,00,72,00,61,00,6d,00,65,00,77,00,6f,00,72,00,6b,\
00,36,00,34,00,5c,00,76,00,34,00,2e,00,30,00,2e,00,33,00,30,00,33,00,31,00,\
39,00,5c,00,45,00,76,00,65,00,6e,00,74,00,4c,00,6f,00,67,00,4d,00,65,00,73,\
00,73,00,61,00,67,00,65,00,73,00,2e,00,64,00,6c,00,6c,00,00,00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\com.docker.service]
"Type"=dword:00000010
"Start"=dword:00000002
"ErrorControl"=dword:00000000
"ImagePath"=hex(2):22,00,43,00,3a,00,5c,00,50,00,72,00,6f,00,67,00,72,00,61,00,\
6d,00,20,00,46,00,69,00,6c,00,65,00,73,00,5c,00,44,00,6f,00,63,00,6b,00,65,\
00,72,00,5c,00,44,00,6f,00,63,00,6b,00,65,00,72,00,5c,00,63,00,6f,00,6d,00,\
2e,00,64,00,6f,00,63,00,6b,00,65,00,72,00,2e,00,73,00,65,00,72,00,76,00,69,\
00,63,00,65,00,22,00,00,00
"DisplayName"="Docker for Windows Service"
"ObjectName"="LocalSystem"
"Description"="Run Docker for Windows backend service"
---END---
You can add an entry to currentversion\run or a scheduled job if you want docker for windows.exe to start up automatically.
Restart the computer and run the PowerShell script C:\Program Files\Docker\Docker\Resources\mobylinuxvm.ps1 -Create
Look into this ps1 file and notice that you can set various options. Please refer to these websites:
https://docker-saigon.github.io/post/Docker-Beta/
https://jpetazzo.github.io/2013/10/16/configure-docker-bridge-network/
Make sure the docker service com.docker.service (start-service com.docker.service) is running before you start C:\Program Files\Docker\Docker for Windows.exe
If you are running on server core and don't have the tray icon, click "change privacy settings" when the notification comes up after it starts to get to settings (or modify the json in programdata)
If you run into issues when trying things and rebuilding, check out the C:\Program Files\Docker\Docker\Resources\forceremovedocker.ps1 file for locations to delete settings such as in C:\programdata. I would advise against running the script as it deletes all docker related things. Just use pieces of it.
According to this from Stefan Scherer it is possible to run Linux containers on Server 2016. The instructions are:
Create a Linux Docker machine in Hyper-V
If you want to try out multi architecture you also use docker-machine
to create a Linux Docker Engine running in Hyper-V. I have prepared a
script that will set up everything as there are some known issues.
C:\vagrant\scripts\create-hyperv-linux-docker-machine.ps1
This PowerShell script creates a Docker machine and updates Docker
Engine to the latest so that the Windows Docker client is able to
communicate with the Linux Docker Engine.
Use the Linux Docker machine
Open a PowerShell terminal as an administrator and select the Linux
Docker machine with
docker-machine env --shell powershell | iex
Now run your first busybox container with
docker run -it busybox uname -a
Unfortunately, right now it is not possible to easily install the "Docker for Windows" tool. This installer provides a thin VM called MobyLinux which allows running of Linux containers on Windows Server 2016. You can find a hacky install attempt (which I have not tried) on the Docker forums.
For reference there is a good discussion about what is going on behind the scenes with "Docker for Windows".
The below worked on Windows Server 2016 build 14393.693 (January 2017) without hacky workarounds.
It may work on higher/lower builds but I tried to replicate on a recently updated version of Windows Server 2016 and it failed spectacularly! Feels like this hole had to be patched!
Download Docker Community Edition 2.0.0.3 2019-02-15
Link: https://download.docker.com/win/stable/31259/Docker%20for%20Windows%20Installer.exe
Page with all versions: https://docs.docker.com/docker-for-windows/release-notes/
Simply download/copy the file to the Windows Server 2016 machine and run it.
It can also run offline for air-gapped systems.
Uncheck the "Use Windows containers" during setup. Unchecked by default.
You will get a message after installing saying that windows so and so is deprecated. Click OK. enter image description here
Log out and log back in.
If you hadn't installed Hyper-V it'll prompt you to do it automatically. Allow it, let it finish and restart. You're good to go now. You may need to restart again if it fails to switch to Linux.
I've tested this by running several Linux containers, it works fine. If I'm missing something do share for the benefit of others. The downside is you cannot update to a later version of Docker.
Simply download and install Docker on Windows Server 2016 https://www.docker.com/docker-windows
If you run Windows Server 2016 as a VM using Hyper-V make sure to check this MS doc https://learn.microsoft.com/en-us/virtualization/hyper-v-on-windows/user-guide/nested-virtualization

Resources