Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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:

  1. Using sudo docker... instead of docker...
  2. Adding user to docker usergroup with sudo usermod -aG docker $(whoami)
  3. 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?

like image 642
PalBo Avatar asked May 04 '20 12:05

PalBo


People also ask

How do I start Docker daemon in Ubuntu WSL?

When Docker Desktop starts, go to Settings > Resources > WSL Integration. The Docker-WSL integration will be enabled on your default WSL distribution. To change your default WSL distro, run wsl --set-default <distro name> . For example, to set Ubuntu as your default WSL distro, run wsl --set-default ubuntu .


1 Answers

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 Activate WSL2

...access from your default WSL2 enter image description here

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.

like image 185
J.Serra Avatar answered Sep 20 '22 14:09

J.Serra