WSL2 无法连接到 Docker 守护进程

新手上路,请多包涵

这是我的设置:

  • Windows 10 PRO - build 19041.153 - 内幕程序 - 慢响
  • Ubuntu 18.04LTS WSL2 模式下的子系统
  • Docker for desktop 2.2.0.4 - 启用 WSL2 与我的 Ubuntu 子系统的集成

我目前被迫使用Windows进行开发,所以我成为了microsoft Insider成员并以WSL2模式安装了ubuntu。 Docker 桌面支持 WSL2 的集成,所以我尝试了它……一周以来它完美无缺。今天PC重启后,我无法让docker再次运行。 Ubuntu 可以从 Docker 桌面看到注入的二进制文件,但它无法再连接到 Windows 托管的 docker daemon。

当我调用 subsys 终端 docker info 它返回

$ docker info
Client:
 Debug Mode: false

Server:
ERROR: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
errors pretty printing info

或与 docker-compose up

 ERROR: Couldn't connect to Docker daemon at http+docker://localhost - is it running?

If it's at a non-standard location, specify the URL with the DOCKER_HOST environment variable.

我已经尝试过的:

  • 使用 DOCKER_HOST=localhost:2375DOCKER_HOST=tcp://localhost:2375DOCKER_HOST=127.0.0.1:2375DOCKER_HOST=tcp://127.0.0.1:2375 2295447fbbdea533b50c 等环境暴露没有 TLS 的守护进程
  • 卸载 Docker 桌面并安装以前的版本
  • 关闭win防火墙

我真的,真的需要这个工作。感谢您的任何想法。最奇怪的是它昨天工作,从那时起我没有对系统进行任何更改……

原文由 Dutch77 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.6k
1 个回答

我知道这对于目前的问题可能已经过时,但这应该可以节省我们宝贵的时间,尤其是当 Windows 20H1=2004 本月(2020 年 5 月)将投入生产时。

操作系统版本:Windows 10 教育版(与企业版相同,是专业版的超集)。

版本:2004

构建(版本操作系统) :19041.264

其他:Windows 功能体验包 120.2202.130.0。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

外壳:WSL 终端

首先,我之前已经安装了 WSL v1 ,然后执行了升级到 WSL v2 的过程,并且出现了这个错误:“错误:无法在 tcp://localhost:2375 连接到 Docker 守护进程。docker 守护进程是否正在运行?”。

其次,为了解决这个问题,我按照此处所述的说明进行操作: Link ,它起作用了。

第三,经过一些测试,我认为升级中缺少的更改是从 shell 的启动脚本中删除 DOCKER_HOST 变量。

摘要: 就我而言,永久修复的程序应遵循以下 步骤

1. 测试是否是您取消设置 DOCKER_HOST 变量的情况(见下图)。

2. 如果上一步错误消失,那么是时候修复更改了,删除 shell 启动脚本中 DOCKER_HOST 变量的设置(在我的情况下是 $HOME/.bashrc )。

对此进行了评论:

#export DOCKER_HOST=tcp://localhost:2375

#export DOCKER_BUILDKIT=1

_注意_:还包括 DOCKER_BUILDKIT。

3. 关闭并打开终端。

步骤 1 中的测试: 在此处输入图像描述

祝你好运!!

原文由 Patricio 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题