我目前正在WSL 2上运行Debian Distro(Microsoft Store的默认版本),并且在其上运行Docker时遇到了很多麻烦。我的操作系统当前是Windows 10 Education Insider Preview,版本2004,操作系统内部版本是19587.1000,并且我具有Docker Desktop。
现在,在这一点上,我已经尝试了一切。我尝试使用“不带TLS的tcp:// localhost:2375上的暴露守护程序”方法,但没有结果。然后,我尝试启用“启用基于WSL 2的实验引擎”(这也是为什么我必须转至Windows 10教育版并获得docker桌面并移至此版本2004的原因)。 我还从我的.bashrc中注释了“ #export DOCKER_HOST = tcp:// localhost:2375”。 然后,由于WSL不支持systemd或systemctl,因此使用它们启动docker是没有用的,因此我尝试了“ sudo服务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上查找了教程,论坛和其他问题。 大多数都是关于本机Linux或WSL 1上的Docker,它们使用第一种方法在tcp:// localhost:2375上将守护进程公开而没有TLS,这不是很安全,但是我什至没有在我的上工作。
请帮助!这将不胜感激!! 预先感谢!
答案 0 :(得分:5)
https://github.com/docker/for-win/issues/5096
通过在Windows PowerShell中检查 wsl -l -v
,确保已将wsl发行版升级到了v2
在docker设置中,使用基于WSL 2的引擎并为发行版启用WSL集成
但最终为我解决的问题是覆盖使用WSL1留下的DOCKER_HOST
env变量
export DOCKER_HOST=unix:///var/run/docker.sock
您可以执行此行进行测试,然后将其添加到.bashrc
中,并确保未在.bash_profile
或.profile
中设置该行
您应该可以成功运行docker ps
答案 1 :(得分:2)
好吧,基本上我安装了一个干净的WSL。这次我得到了一个干净的Ubuntu,并且以某种方式解决了该问题。我的其他WSL发行版仍无法与此配合使用,但此干净的Ubuntu可以。但是,一旦我在上面安装了一些东西,它又开始断裂。现在,我重新安装了它,现在工作正常。似乎可能与此发生冲突?