6

我目前正在 WSL 2 上运行 Debian Distro(Microsoft Store 中的默认发行版),在其上运行 Docker 时遇到了很多麻烦。我的操作系统目前是 Windows 10 Education Insider Preview,版本 2004,操作系统版本是 19587.1000,我有 Docker 桌面。

现在,在这一点上,我已经尝试了一切。我尝试使用“在没有 TLS 的情况下在 tcp://localhost:2375 上公开守护程序”的方式没有结果。然后,我尝试启用“启用基于实验性 WSL 2 的引擎”(这也是我必须迁移到 Windows 10 教育并获取 docker 桌面并迁移到此版本 2004 的原因)。我还从我的 .bashrc 中注释掉了“#export DOCKER_HOST=tcp://localhost:2375”。然后由于 WSL 不支持 systemd 或 systemctl,使用这些启动 docker 是没用的,因此我尝试了“sudo service docker start”和“sudo /etc/init.d/docker start”。但是,当我在 WSL 中的 Docker 中运行任何命令时,它仍然给了我这个:

$ docker ps -a 
Cannot connect to the Docker daemon at tcp://localhost:2375. Is the docker daemon running?  

我似乎无法弄清楚出了什么问题......我到处查找,教程,论坛,StackOverFlow 上的其他问题。大多数都是关于 Native Linux 上的 Docker 或 WSL 1 上的,他们使用第一种方法在没有 TLS 的情况下在 tcp://localhost:2375 上公开守护程序,这不是很安全,但我什至没有在我的工作中使用它。

请帮忙!这将不胜感激!!提前致谢!

4

3 回答 3

10

https://github.com/docker/for-win/issues/5096

wsl -l -v通过签入 windows powershell确保您已将 wsl 发行版升级到 v2

在 docker 设置中,使用基于 WSL 2 的引擎并为您的发行版启用 WSL 集成码头工人设置

但最终为我解决的问题是覆盖DOCKER_HOST使用 WSL1 留下的 env 变量

export DOCKER_HOST=unix:///var/run/docker.sock

您可以执行此行进行测试,然后将其添加到您的.bashrc并确保它没有被设置.bash_profile.profile

然后您应该能够docker ps成功运行

于 2020-08-06T03:14:05.623 回答
1

好的,所以基本上我安装了一个干净的 WSL。这次我得到了一个干净的 Ubuntu,并以某种方式解决了这个问题。我的其他 WSL 发行版仍然无法使用它,但这个干净的 Ubuntu 可以。但是,一旦我在上面安装了一些东西,它就又开始坏了。现在,我重新安装了它,现在它工作正常。似乎有些东西可能与此冲突?

于 2020-04-17T19:02:20.490 回答
0

我在 Debian 上遇到了类似的问题,这很奇怪,因为我有一个正在运行的 OpenSUSE 实例连接到并使用 docker 没有问题。在我的情况下,报告的错误是 Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

两个实例都启用了 WSL2 集成。

最终起作用的是:

  1. 在 WSL Debian 和 WSL.exe 中 -unset DOCKER_HOST
  2. 重新启动 Docker...(右键单击任务栏中的 Docker Dashboard 图标)
  3. 再次尝试任何 docker 命令或直接尝试docker ps

有一个选项可以在没有 TLS 的情况下在 tcp://localhost:2375 上公开守护进程,但是默认情况下它是未选中的,我就这样离开了。

于 2021-11-05T00:02:31.310 回答