我正在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?
。
我尝试了以下步骤:
sudo docker...
代替docker...
sudo usermod -aG docker $(whoami)
将用户添加到docker用户组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 running
。 service docker start/restart
不执行任何操作,Docker无法启动。任何想法可能是什么问题?
答案 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中
基于本文。 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