catmaxi
catmaxi

Reputation: 129

Docker in WSL2: Cannot connect to the Docker daemon at tcp://localhost:2375. Is the docker daemon running?

I am currently running a Debian Distro (The default one from the Microsoft Store) on WSL 2 and I am having a lot of trouble with running Docker on it. My OS currently is Windows 10 Education Insider Preview, version 2004, and the os build is 19587.1000 and I have Docker Desktop.

Now, at this point, I've literally tried everything. I have tried using the "Expose daemon on tcp://localhost:2375 without TLS" way to no result. Then, I tried enabling "Enable the experimental WSL 2 based engine" (this is also why I had to move to Windows 10 education and get docker desktop and move to this version 2004). I have also commented out "#export DOCKER_HOST=tcp://localhost:2375" from my .bashrc. And then since WSL does not support systemd nor systemctl, starting docker using these are useless, and thus I tried "sudo service docker start" and also "sudo /etc/init.d/docker start". But, still when I run any command in Docker in my WSL, it gives me this:

$ docker ps -a 
Cannot connect to the Docker daemon at tcp://localhost:2375. Is the docker daemon running?  

I just can't seem to figure out what is wrong... I've looked up everywhere, tutorials, forums, other questions on StackOverFlow. Most are either about Docker on Native Linux or on WSL 1 where they use the first method of exposing the daemon on tcp://localhost:2375 without TLS which is not very secure, but I didn't even get that working on mine.

Please help! It would be greatly appreciated!! Thanks in advance!

Upvotes: 9

Views: 10364

Answers (5)

Claire Neemah
Claire Neemah

Reputation: 1

Enabling virtualization technology in the bios settings worked for me.

Upvotes: 0

Abhishek kumar
Abhishek kumar

Reputation: 21

Okay, I am using WSL2 + Ubuntu + Docker Desktop. What fixed the issue for me waschecking the option "Expose daemon on tcp://localhost:2375 without TLS" in Docker Desktop.

Upvotes: 2

Jason Robinson
Jason Robinson

Reputation: 945

I had a similar issue on Debian, which was strange, as I had a running instance of OpenSUSE connecting to and using docker without problems. In my case the reported error was Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

WSL2 Integration was enabled for both instances.

What eventually worked was the following:

  1. From within both WSL Debian and WSL.exe - unset DOCKER_HOST
  2. Restart Docker... (right-click on the Docker Dashboard icon in Task Bar)
  3. Try any docker command again or just plain docker ps

There is an option for exposing the daemon on tcp://localhost:2375 without TLS, however it is unchecked by default, and I left it that way.

Upvotes: 0

FFF
FFF

Reputation: 791

https://github.com/docker/for-win/issues/5096

Make sure youve upgraded your wsl distro to v2 by checking wsl -l -v in windows powershell

In docker settings, Use the WSL 2 based engine & Enable WSL integration for your distro Docker settings

But what finally fixed it for me was overriding the DOCKER_HOST env variable left over from using WSL1

export DOCKER_HOST=unix:///var/run/docker.sock

You can execute this line to test and then add it to your .bashrc and make sure its not getting set in .bash_profile or.profile

You should then be able to run docker ps successfully

Upvotes: 23

catmaxi
catmaxi

Reputation: 129

Ok so basically I installed a clean WSL. This time I got a clean Ubuntu, and somehow it fixed the issue. My other WSL distros still won't work with this, but this clean Ubuntu does. However, as soon as I installed some stuff on it, it started breaking again. Now, I reinstalled it and now it works fine. Seems like something could be potentially conflicting with this?

Upvotes: 1

Related Questions