【问题标题】:Docker python client support for Window 10对 Window 10 的 Docker python 客户端支持
【发布时间】:2019-06-06 10:54:13
【问题描述】:

我在 Window 10 机器上安装了 docker python 客户端。我的机器有python-3.7 版本正在运行,它有pypiwin32 版本223。我也可以导入 docker 客户端,但是当我尝试使用 from_env() 类之一来创建对象时,它会抛出错误:

import docker
docker.from_env() 

回溯(最近一次通话最后一次):
文件 "C:\Users\abhishek.jain\AppData\Local\Programs\Python\Python37\lib\site-packages\docker\client.py", 第 74 行,在 init self._custom_adapter = NpipeAdapter( NameError: 名称“NpipeAdapter”未定义

在处理上述异常的过程中,又发生了一个异常:

Traceback(最近一次调用最后一次):文件“”,第 1 行,in docker.from_env() 文件 "C:\Users\abhishek.jain\AppData\Local\Programs\Python\Python37\lib\site-packages\docker\client.py", 第 27 行,在 from_env return Client.from_env(**kwargs) 文件 "C:\Users\abhishek.jain\AppData\Local\Programs\Python\Python37\lib\site-packages\docker\client.py", 第 112 行,在 from_env 中 返回 cls(version=version, **kwargs_from_env(**kwargs)) 文件 "C:\Users\abhishek.jain\AppData\Local\Programs\Python\Python37\lib\site-packages\docker\client.py", 第 79 行,在 init 中 '安装 pypiwin32 包以启用 npipe:// 支持' docker.errors.DockerException: 安装 pypiwin32 包以启用 npipe:// 支持

能否请您确认一下docker python client是否支持Window 10

【问题讨论】:

  • 你有没有试过错误提供的建议:“安装 pypiwin32 包以启用 npipe:// 支持”
  • 它已经安装了 pypiwin32 的 223 版...该版本似乎是 Python3.7 的正确版本如果我正确理解了文档... C:\Users\abhishek.jain>pip安装 pypiwin32 已满足要求:c:\users\abhishek.jain\appdata\local\programs\python\python37\lib\site-packages 中的 pypiwin32 (223) 已满足要求:c:\users\abhishek 中的 pywin32>=223 .jain\appdata\local\programs\python\python37\lib\site-packages\pywin32-223-py3.7-win-amd64.egg(来自 pypiwin32)(223)C:\Users\abhishek.jain>跨度>
  • 你运行的是哪个(内核)版本的 windows 和 docker?
  • Docker 版本 18.09.0,构建 4d60db4 操作系统名称 - Microsoft Windows 10 Pro 版本 - 10.0.17134 build 17134 如果您需要任何其他信息以进一步调查此问题,请告诉我
  • 所以你运行 Win10 1803 更新?我很确定命名管道通信是在服务器 2019 和 win 1809 中引入的,但不是更早。您可以使用较新的 Windows 进行检查吗?另请注意,您必须在 docker run 命令 afaik 中指定管道。

标签: python-3.x docker docker-for-windows docker-desktop


【解决方案1】:

容器命名管道与 Docker API 通信是 introduced 与 Server 2019 和 Win 1809。

您可以使用更新的 1809 Windows 10 进行检查。还请注意,您必须在 docker run 命令中指定管道,例如显示链接的博客文章。

如果您无法更新您的计算机,您可以使用预安装的 Azure Win10 虚拟机进行更新。你可以在 Azure 市场中找到它。不能 100% 确定您是否需要 MSDN 订阅。

顺便说一句,最新的 Docker Desktop 18.09.1 进程隔离正在工作,因此您甚至不需要(嵌套)虚拟化(Azure)或 hyper-V(本地)。

【讨论】:

    【解决方案2】:

    所以我遇到了同样的问题,如果您使用的是 python 3.6 或 3.7,我发现这是由于 pypiwin32==224 造成的问题。如果您使用的是较低的 python 版本,解决方法是安装 pypiwin32==220。此解决方法不适用于版本 3.6 和 3.7,因为不支持此版本。我建议使用支持 pypiwin32==220 的 python 版本。当我尝试在本地运行 aws-sam 时遇到了这个问题,最后我使用 pip 卸载了 aws-sam-cli 并使用 msi 安装了它:(

    【讨论】:

      猜你喜欢
      • 2017-06-16
      • 1970-01-01
      • 2019-05-17
      • 1970-01-01
      • 2021-05-02
      • 2018-02-10
      • 1970-01-01
      • 2023-02-04
      • 1970-01-01
      相关资源
      最近更新 更多