Docker Community Forums

Share and learn in the Docker community.

WSL and Docker for Windows: "Cannot connect to the Docker daemon at tcp://localhost:2375. Is the docker daemon running?"

After trying various “solutions” from forwarding the Docker for Windows pipe to setting up my own docker machine, I finally found a solution that easily allows me to expose the docker daemon on a configurable port:

Simply run the following container to forward the docker daemon to a local port yourself.

docker run -d --restart=always -p -v /var/run/docker.sock:/var/run/docker.sock  alpine/socat  tcp-listen:2375,fork,reuseaddr unix-connect:/var/run/docker.sock

I use 23750 and therefore I’ve configured export DOCKER_HOST=tcp:// in my .bashrc in WSL.

Hope that helps…



Which stated:
echo "export DOCKER_HOST=tcp://localhost:2375" >> ~/.bashrc && source ~/.bashrc


You sir, are a gentleman and a scholar! Thank you!

This is the responsed for me

Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?.
See ‘docker run --help’.

I am having the same problems I have tried following this comments but still having the same error.

assuming that you have used a cmd/powershell window and executed the “docker-machine.exe create default” command …

open the bash shell in WSL

please add the following to your .bashrc file

export VBOX_MSI_INSTALL_PATH=’/c/Program Files/Oracle/VirtualBox/’

export DOCKER_HOST=tcp://
export DOCKER_CERT_PATH=/c/Users//.docker/machine/machines/default
export DOCKER_MACHINE_NAME=default
cd $(pwd | sed ‘s//mnt/c///c//’)

and then execute “source .bashrc”

1 Like

Corrected a typo in the path

Had the same problem. Solved by uninstalling kubernet, minikube; removing all related folders, variables, net configs in hyperv. And then reinstalling docker.

I had the same issue after installing some Windows updates.

What solved it for me initially was: Disable Hyper-V in “Add or remove Windows Features”, restart, enable Hyper-V again, restart again

But now a day later the issue crept back. The solution by nicodocoyo worked like a charm. Run socat via docker on the Windows command line and then connect to the custom port from within WSL.


Works great! Thank you for this solution!

Solved it by resetting Shared Drives credentials :

  1. Go to Shared Drives
  2. Hit Reset credentials
  3. Type password again
  4. Share drive again
  5. Apply

Thanks. This solution works great

Thank you.

I have been struggling with this for well over a year. Some days, connectivity to Docker for Windows works flawlessly within WSL. Other days, the dreaded “Cannot connect to the Docker daemon…” error (usually after Windows updates). No amount of restarting / resetting Docker typically helps, and I often have to reboot numerous times until finally it decides it wants to allow connections again.

Right now, I’m having the issue. I can confirm that running this in cmd.exe and then trying to connect in WSL works. I was concerned that this might break volume mounts from WSL, but they too work perfectly.

Thank you!

Make sure to check the box next to the following:

Docker desktop --> Settings --> General --> “Expose daemon on tcp://localhost:2375 without TLS”


If you are on Windows Pro, you just need to enable on the docker settings {expose demon on port 2375 without TLS} check box.


Thank you so much for this solutin, you saved my day.

I had to expose the 2375 port in the Docker Desktop settings as well. As a test, I quit Docker Desktop and the error returned.

I had these same error message but not that often when I execute docker ps:

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

Sys info: Running Windows 10 Enterprise Vers 1803 OS Build 17134.1069 and docker ver Docker version 18.09.7, build 2d0083d.

I had tried:

-"/localhost:2375 without TLS" verified it was checked
-Reset permissions to local hard drives
-Restarted docker itself few times

Currently running docker via WSL. Everything works fine but every blue moon I get this error. No matter what I do, it will not go away. My current solution is to do a hard cold restart and everything works as before. I have a theory and it is that docker (or docker-machine and underlined layer) builds up some memory over time until it reaches at limit and the connection cannot be made. Maybe the port is not release properly? It takes on average 10 to 15 days to reach this error and for me, restarting the system solved the problem every time. This has been my experience in the last three months so this behavior of locking up is consistent. I would like to note that after I restart the machine, Docker works without any problems.


The above command needs to be run from the Windows side not the WSL side (thanks bigwhoop). Probably obvious to others but not me :man_facepalming:.

Run socat via docker on the Windows command line (source)

1 Like

He said he has already done it