17

I'm trying to setup docker with WSL 2 to run a Dockerfile. I downloaded Docker Desktop, and when I tried to follow the quick start guide, I got the following error:

docker: error during connect: This error may indicate that the docker daemon is not running.: Post "http://%2F%2F.%2Fpipe%d2Fdocker_engine/v1.24/containers/create?name=repo": open //./pipe/docker_enginer: The system cannot find the file specified.

I set com.docker.service to run in the Task Manager, and have run:

“c:\Program Files\Docker\Docker\DockerCli.exe” -SwitchDaemon

I have also quit Docker Desktop and reopened it in admin mode, and I still get the message that Docker Desktop has stopped.

Please let me know if there's any other options, thanks!

torek
  • 448,244
  • 59
  • 642
  • 775
Axiom
  • 181
  • 1
  • 1
  • 5

12 Answers12

33

I managed to solve the problem in this way:

  1. delete config file AppData/Roaming/Docker/settings.json
  2. start Docker Desktop (it will create new default settings.json)

You need to re-configure settings, so it is also good idea to save the old settings.json and compare settings with the new one.

Janne Rantala
  • 391
  • 1
  • 3
  • 5
  • 1
    Did not work for me using docker version `20.10.17, build 100c701` – OpenStack Oct 03 '22 at 18:54
  • Here at **Windows 11 Education 22H2** (build `22621.819`), I was finally able to launch **Docker Desktop 4** (build `4.13.1-90346`) after deleting `%AppData%\Docker\settings.json`. It was auto-created again during Docker startup and no container/image/volume was lost because of it. Thanks! – Erick Petrucelli Nov 09 '22 at 13:31
  • In my case had to also run `wsl --update` as admin. – Tiago Martins Peres May 22 '23 at 12:12
12

If you are running Docker Desktop for Windows 4.5.0 then you should be aware of an existing issue where the default backend selected after installing is not the correct one.

You can switch to the correct backend manually by editing the file located at: %AppData%\Docker\settings.json (full path: C:\Users\%UserName%\AppData\Roaming\Docker\settings.json) and at the bottom of the file change the value for the wslEngineEnabled field to true. After that Docker Desktop should start correctly.

Similar issue and solution is mentioned here by the user mccaa25.

Erick Petrucelli
  • 14,386
  • 8
  • 64
  • 84
sudo
  • 188
  • 8
  • 1
    For DockerDesktop 4.5.0 this is the accepted answer. Maybe the reason it was downvoted was because it is poorly written. I have tried to edit it but the edit queue is full. I would like only to add that this is a known issue because when I reached out to docker support they pointed me to the same solution. "Change wslEngineEnabled valueto true in the %APPDATA%\Docker\settings.json (sometimes is %APPDATA%\Roaming\Docker\settings.json) file" – IsaacCisneros Feb 15 '22 at 10:09
  • Thanks! I added your clarifications in the main post. As this is my first StackOverflow answer, can you or someone tell me how it is poorly written? – sudo Feb 15 '22 at 18:52
  • 1
    "If you are running Docker Desktop for Windows 4.5.0 then you should be aware of an existing issue where the default backend selected after installing is not the correct one. You can wait for the release of Docker Desktop 4.5.1 and update after or meanwhile you can switch to the correct backend manually by editing the file located at: %APPDATA%\Docker\settings.json (sometimes is %APPDATA%\Roaming\Docker\settings.json) and at the bottom of the file change the value for the wslEngineEnabled field to true. After that Docker Desktop should start correctly". – IsaacCisneros Feb 17 '22 at 09:15
  • 1
    In general answering directly with links is bad because you don't have control over them. Your approach to quote the solution was OK but a better one is trying to explain the solution in your own words and then just as a footnote referencing the GitHub page. See my example answer above. – IsaacCisneros Feb 17 '22 at 09:19
  • Thank you very much for your time, this is much appreciated. Should I edit my post with your version? I don't want to be stealing your work, but it is indeed much better. – sudo Feb 17 '22 at 12:38
  • I have sent already an edit so we can wait if it's approved – IsaacCisneros Feb 17 '22 at 13:42
  • Looks like deleting the settings.json fixes the problem although mine is on Windows 10, after a windows update docker would not start the engine, the moment I end task all docker things and renamed settings.json then started docker desktop, it wanted to update from 4.19 to 4.20.1. I've had to do this in the past as well for another version where something in settings.json changed but was not updated automagically. – Liam Mitchell Jun 17 '23 at 17:25
10

latest version 4.5.0 It won't work for me too, for me downgrade to 4.4.4 it worked. It may be problem with the latest version

for released note and older version Here

Note: You can install an older version and update to latest version 4.5.0

Bell
  • 103
  • 5
9

Wow! I spent multiple days trying to get Docker for windows 11 to work. What finally did it was downgrading to version 4.4.4 as @GinglrBell recommended. Here's a link Docker version 4.4.4.

Make sure WSL is installed and virtualization is enabled. If you try to open WSL and you get an error telling you to enable virtualization in BIOS, run this command as Admin in powershell: bcdedit /set hypervisorlaunchtype auto (Docker src). Then restart your PC.

Arcanus
  • 642
  • 5
  • 20
5

I hit this issue today, and the steps below are what worked for me - the gist is that I needed to install WSL 2 beforehand. Most of my steps were derived from here:

  1. open powershell as admin
  2. wsl -l -v # Windows Subsystem for Linux has no installed distributions
  3. install linux kernel update from here # in my case, x64-based
  4. wsl --set-default-version 2
  5. wsl --list --online # shows several linux distributions, I picked a recent one
  6. wsl --install -d Ubuntu-20.04 # then create default linux user name and password
  7. install windows docker desktop from here # now starts successfully
siddarfer
  • 162
  • 1
  • 13
  • One of installing the kernal update and setting default WSL version fixed for me on Windows 10 21H2 – obaylis Jan 31 '23 at 09:03
2

I was able to resolve this issue on my machine by installing the Linux kernel update package as described in the Microsoft guide

denis-prk
  • 21
  • 1
1

Manged to switch to Windows Containers. (Docker v4.9.0)

What I did was to change the following in the settings.json: "useWindowsContainers": true, "wslEngineEnabled": true,

Also set security on folder:

C:\ProgramData\Docker (I set "Everyone" full control.)

After that I used the "Switch to Windows Containers"-feature from the task-bar icon content menu

1

I tried Janne Rantala's method.

But the same problem occurs again after several days.

My final solution is to uninstall Docker Desktop, then download and run the installation file as an administrator.

Then the problem no longer appears again.

Brian
  • 12,145
  • 20
  • 90
  • 153
1

I solved this issue by enabling the windows feature "Windows Hypervisor Platform" and restarting my computer.

I installed Docker Desktop v4.16.2

Hsjakobsen
  • 196
  • 1
  • 4
0

I have been having some Docker setting up troubles for a fair amount of time. I think I had to just make sure I removed all references of Docker. After buying Windows 10 pro I still had issues, I did have to look into the following folders:

C:\Users\%UserName%\AppData\Local\Temp\Docker
C:\Users\%UserName%\AppData\Roaming\Docker

I also deleted the Docker file in my programfiles folder

Navigated to said file and deleted Docker files. Used the docker installer, checkboxes (to use wsl2).

tony2tones
  • 1,422
  • 1
  • 18
  • 19
0

I was faicing the same issue and resolved. I have just open Microsoft Store application and after that opened the docker and its working fine. This is wired but sharing this so it might helps someone.

firozSujan
  • 118
  • 1
  • 9
0

I'm running Docker 4.21.0 on windows 11. In my case, I had to change the default distro to Ubuntu as my default was kali-linux.

The Docker-WSL integration is enabled on the default WSL distribution, which is Ubuntu. To change your default WSL distro, run:

wsl --set-default <distro name>

To check the WSL mode, run:

wsl.exe -l -v