Docker not running on Ubuntu WSL due to error cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? [closed]
I am running WSL 2 (Ubuntu) on a Windows 10 machine. I installed Docker on my Ubuntu using the official Docker guide (https://docs.docker.com/engine/install/ubuntu/#install-using-the-repository). Running docker run hello-world
produces the following error: docker: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
.
I have tried the following steps:
- Using
sudo docker...
instead ofdocker...
- Adding user to docker usergroup with
sudo usermod -aG docker $(whoami)
-
sudo nohup docker daemon -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock &
which I found in this thread: https://forums.docker.com/t/cannot-connect-to-the-docker-daemon-is-the-docker-daemon-running-on-this-host/8925/4
None of these steps helped.
docker version
produces this output:
Client: Docker Engine - Community
Version: 19.03.8
API version: 1.40
Go version: go1.12.17
Git commit: afacb8b7f0
Built: Wed Mar 11 01:25:46 2020
OS/Arch: linux/amd64
Experimental: false
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
service docker status
gives Docker is not running
. service docker start/restart
does nothing, Docker does not start. Any ideas what could be the issue?
Solution 1:
I found your question, as I was trying to achieve the same. {I have updated my question as with the latest windows update, the process it's much more easier}
Using WSL2
You simply have to activate and use WSL2, I have to install Ubuntu 20.04 as the 18.04 wasn't connecting with Docker desktop. In the windows shell:
To check the WSL mode, run
wsl -l -v
To upgrade your existing Linux distro to v2, run:
wsl --set-version (distro name) 2
WSL Integration will be enabled on your default WSL distribution. To change your default WSL distro, run
wsl --set-default <distro name>
Then in docker you have to.
...use the WSL2 engine
...access from your default WSL2
Based on this article. A Linux Dev Environment on Windows with WSL 2, Docker Desktop And the docker docs. Docker Desktop WSL 2 backend
Below is valid only for WSL1
It seems that docker cannot run inside WSL. What they propose is to connect the WSL to your docker desktop running in windows: Setting Up Docker for Windows and WSL
In the docker forums they also refer to that solution: Cannot connect to the docker daemon
Hope that helps.
Solution 2:
Go into PowerShell
and type: docker context ls
Output:
NAME DESCRIPTION DOCKER ENDPOINT KUBERNETES ENDPOINT ORCHESTRATOR
default * Current DOCKER_HOST based configuration npipe:////./pipe/docker_engine swarm
Go back into your wsl/ubuntu setup and type:
export DOCKER_HOST=unix:///var/run/docker.sock
This should automatically show your full output when typing docker version
.