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
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?
https://github.com/docker/for-win/issues/5096
Make sure youve upgraded your wsl distro to v2 by checking
wsl -l -v
in windows powershellIn docker settings, Use the WSL 2 based engine & Enable WSL integration for your distro
But what finally fixed it for me was overriding the
DOCKER_HOST
env variable left over from using WSL1export 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
successfullyI 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:
unset DOCKER_HOST
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.
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.
Enabling virtualization technology in the bios settings worked for me.