从Ubuntu Bash连接到Windows 10的Docker守护程序

13

我正在尝试做一些比较非标准的事情,所以我不确定成功率如何。

我安装了“Docker for Windows”,并且能够在PowerShell中很好地使用它。

不过,我想使用一个真正的Linux环境,因此我已经在Windows 10上安装了新的Ubuntu Bash提示符。

我已经在Ubuntu/Bash中成功构建了最新的Docker客户端。但是,当我运行“docker ps”时,会出现以下错误:

无法连接到Docker守护程序。Docker守护程序是否在此主机上运行?

我本来希望它可以正常工作。

是否可能从Ubuntu/Bash连接到在Windows上运行的Docker守护程序?

1个回答

21

我想通了。这个解决方案竟然非常简单。我只需要设置以下内容...

export DOCKER_HOST=tcp://127.0.0.1:2375

这实际上是一个非常酷的设置。

使用类型2虚拟机运行非常快速、高效的Docker引擎,并具备基于Ubuntu的适当开发环境。不错👍

注意:正如@BSalita在评论中提到的那样,必须启用Docker服务以"Expose daemon on tcp://localhost:2375 without TLS"方式运行,该选项可以在Docker设置的一般部分中找到(右键单击系统托盘图标然后选择“设置…”)。默认情况下此选项未被勾选。


非常感谢您回来并提供解决方案。运行得非常好! - ereOn
我发现这个设置存在一个问题。似乎没有办法从命令行挂载卷。 - user1751825
你可以分享Windows驱动器给Docker主机,但是不能直接访问Ubuntu用户空间中的文件。因为宿主机在Hyper-V的Linux VM上,在Windows上无法访问"Ubuntu on Windows"魔法空间中的文件。你需要:
  1. 从Docker设置中将你的Windows驱动器共享给Docker主机。
  2. 在挂载时使用Windows路径,如c:/Users/roman/Desktop,而不是Linux路径(/mnt/c/Users/roman/Desktop)。
- Roman
4
除了设置 DOCKER_HOST,我还需要执行另一项任务。我必须在 Docker 设置-> 通用 中选中复选框 "Expose daemon on tcp://localhost:2375 without TLS"。请注意,这里不要改变原始意思,只需尽可能地使文本易于理解即可。 - BSalita

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接