Docker未在Ubuntu WSL上运行-无法通过unix:///var/run/docker.sock连接到Docker守护程序。泊坞窗守护程序正在运行吗?

时间:2020-05-04 12:57:02

标签: linux docker ubuntu windows-subsystem-for-linux

我正在Windows 10计算机上运行WSL 2(Ubuntu)。我使用官方Docker指南(https://docs.docker.com/engine/install/ubuntu/#install-using-the-repository)在Ubuntu上安装了Docker。运行docker run hello-world会产生以下错误:docker: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

我尝试了以下步骤:

  1. 使用sudo docker...代替docker...
  2. 使用sudo usermod -aG docker $(whoami)将用户添加到docker用户组
  3. 我在此线程中发现的
  4. sudo nohup docker daemon -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock &https://forums.docker.com/t/cannot-connect-to-the-docker-daemon-is-the-docker-daemon-running-on-this-host/8925/4

这些步骤都没有帮助。

docker version产生以下输出:

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给出Docker is not runningservice docker start/restart不执行任何操作,Docker无法启动。任何想法可能是什么问题?

2 个答案:

答案 0 :(得分:10)

我试图实现相同的要求,所以找到了您的问题。 {我已将问题更新为最新的Windows更新,此过程更加容易了}

使用WSL2

您只需要激活并使用WSL2,就必须安装Ubuntu 20.04,因为18.04未与Docker桌面连接。在Windows Shell中:

要检查WSL模式,请运行

wsl -l -v

要将现有的Linux发行版升级到v2,请运行:

wsl --set-version (distro name) 2

WSL集成将在您的默认WSL发行版上启用。要更改默认的WSL发行版,请运行

wsl --set-default <distro name>

然后必须在docker中

...使用WSL2引擎 Activate WSL2

...从默认的WSL2访问 enter image description here

基于本文。 A Linux Dev Environment on Windows with WSL 2, Docker Desktop 还有docker文档。 Docker Desktop WSL 2 backend

以下仅对WSL1有效

似乎docker无法在WSL中运行。他们建议将WSL连接到在Windows中运行的docker桌面:Setting Up Docker for Windows and WSL

在docker论坛中,他们还引用了该解决方案:Cannot connect to the docker daemon

希望有帮助。

答案 1 :(得分:0)

进入PowerShell并输入:docker context ls

输出:

NAME                DESCRIPTION                               DOCKER ENDPOINT                  KUBERNETES ENDPOINT   ORCHESTRATOR
default *           Current DOCKER_HOST based configuration   npipe:////./pipe/docker_engine                         swarm

返回您的wsl / ubuntu设置并输入export DOCKER_HOST=unix:///var/run/docker.sock