skip to Main Content

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!

5

Answers


  1. Chosen as BEST ANSWER

    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?


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

    Login or Signup to reply.
  3. 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.

    Login or Signup to reply.
  4. 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.

    Login or Signup to reply.
  5. Enabling virtualization technology in the bios settings worked for me.

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search