WSL Docker : Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

在使用 WSL 的 ubuntu-20.04 linux 子系统初学安装和使用 docker 时遇到了这个问题

我之前从 Microsoft Store 中下载了 ubuntu-20.04 的子系统尝鲜。

在后期学习 docker 的时候,想把 docker 安装到 linux 子系统里。

于是使用“菜鸟安装”的方式,把 docker 安装到了 WSL 的 linux 里面,即使用了命令:

$ apt-get update
$ wget -qO- https://get.docker.com/ | sh

安装完成后使用命令检查,就出现了问题

$ docker version
Client: Docker Engine - Community
 Version:           20.10.6
 API version:       1.41
 Go version:        go1.13.15
 Git commit:        370c289
 Built:             Fri Apr  9 22:47:17 2021
 OS/Arch:           linux/amd64
 Context:           default
 Experimental:      true
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

$ _

提示以上错误信息,发现 docker 服务根本起不来,只有客户端是活着的。

去找了很多答案都和我的问题不符,也没法解决。关键点在于我使用了 WSL 的 linux 子系统,情况可能比较特殊。

 

之后,先是找到了 windows 10 对于 WSL 的官方文档指导 文档 。

在疑难解答的位置被指引到了另外一篇文章: windows 10 上的如何在适用于 Linux (WSL2)的 Windows 系统中设置 Docker 。

这篇文章作者对比说明了 WSL1 和 WSL2 的一些问题(其实是着重推荐了一波 WSL2)。

在翻阅文章的过程中,又被导引到了 Docker 官方文档对于 WSL2 的操作说明 Docker Desktop WSL2

官方文档中说明 docker 目前对 WSL2 的支持已经非常完备了,并且强烈推荐使用 WSL2 来配合 docker 使用,这也是官方推荐的最佳方式。

这时我就想到是不是因为使用“菜鸟安装”脚本的最新版本 docker 和我的 WSL 版本不匹配造成的。因为我尝鲜 WSL 子系统比较早,那时候可能用的还不是 WSL2 。

 

于是我根据安装指南中的操作,对 WSL 执行检查:

C:> wsl.exe -l -v
NAME STATE VERSION
* Ubuntu-20.04 Running 1
docker-desktop-data Running 2
docker-desktop Running 2

结果发现我的 ubuntu20.04 是 WSL1 而不是 WSL2 ,是不是这个问题还不确定,但是我还是决定先升级 WSL2 试试看:

C:> wsl.exe --set-version ubuntu-20.04 2
正在进行转换,这可能需要几分钟时间...
有关与 WSL 2 的主要区别的信息,请访问 https://aka.ms/wsl2
转换完成。

升级过后在 Windows Terminal 中重新打开 ubuntu-20.04,再次运行 docker version 检查,发现仍然有问题。

然后我重新启动 docker,并检查 docker 的运行状态,发现 docker 可以正常启动了,问题解决。

 

总结:问题原因是 docker 版本和 WSL2 版本都太新,很多人应该还没有遇到这样的情况。如果你在 windows 10 1909 之前就尝鲜过 WSL,

你安装的 linux 子系统一定是 WSL1 的,那么很有可能你也会遇到这个问题。不妨先用 wsl.exe -l -v 命令检查一下 WSL 的版本。

WSL2 是在 1909 之后微软才推出的,所以需要把 WSL1 文件系统升级到 WSL2 即可解决问题。

 

2021年4月15日00点15分 ——codingR

 

posted @ 2021-04-15 00:36  codingR  阅读(7833)  评论(2编辑  收藏  举报