Docker WSL 2 installation is incomplete

Tiago Martins Peres 李大仁 picture Tiago Martins Peres 李大仁 · Sep 11, 2020 · Viewed 61.3k times · Source

After substituting Docker Desktop on Windows 10 with a more recent version, clicked to start it and got the following error

WSL 2 installation is incomplete

WSL 2 installation is incomplete

The WSL 2 Linux kernel is now installed using a separate MSI update package. Please click the link and follow the instructions to install the kernel update:

https://aka.ms/wsl2kernel

Press restart after installing the Linux kernel

By default, in Settings > General the option "Use the WSL 2 based engine" was already selected. This might be due to me already having Ubuntu 18.04 LTS locally.

If I go to Docker Desktop Settings > Resources > WSL INTEGRATION

Docker WSL Integration

You don't have any WSL 2 distro. Please convert a WSL 1 distro to WSL 2, or install a new distro and it will appear here.

How can I get Docker running?

Answer

There's two ways you can get it to work

  1. Using WSL 2 based engine.
  2. Without using WSL 2 based engine.

1 - Using WSL 2 based engine

In this page under "Download the Linux kernel update package".

Update Linux kernal package

and then Docker will start just fine

Docker running


2 - Without using WSL 2 based engine

If the goal is just to get Docker running, one can simply start by unchecking the box that says "Use the WSL 2 based engine". This can give the following error

Required Windows feature(s) not enabled: Hyper-V.

Required Windows feature(s) not enabled: Hyper-V.

Switch to WSL 2 based engine?

To enable Hyper-V: https://docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/quick-start/enable-hyper-v

So, in PowerShell 7 run the command

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All

Hyper-V in Windows 10

which requires to Restart the computer to complete the operation. Then, once starting Docker again, you can get the following error

Docker failed to initialize

Docker failed to initialize

One or more errors occurred.

Eventually, just by clicking to start again, Docker will start running

Docker running

docker version