Docker Python客户端支持Windows 10

3

我在Windows 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: name 'NpipeAdapter' is not defined

在处理上述异常期间,发生了另一个异常:

回溯(最近的调用最先): 文件“”,第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 return cls(version=version, **kwargs_from_env(**kwargs)) 文件“C:\Users\abhishek.jain\AppData\Local\Programs\Python\Python37\lib\site-packages\docker\client.py”, 第79行,init 'Install pypiwin32 package to enable npipe:// support' docker.errors.DockerException: 安装pypiwin32软件包以启用npipe://支持

请确认docker python客户端是否支持Windows 10


已经安装了pypiwin32的223版本...如果我正确理解文档的话,那个版本应该是适用于Python3.7的正确版本... C:\Users\abhishek.jain>pip install pypiwin32 要求已满足:pypiwin32在c:\users\abhishek.jain\appdata\local\programs\python\python37\lib\site-packages (223) 要求已满足:pywin32>=223在c:\users\abhishek.jain\appdata\local\programs\python\python37\lib\site-packages\pywin32-223-py3.7-win-amd64.egg (from pypiwin32) (223)C:\Users\abhishek.jain> - Abhishek Jain
你正在运行哪个精确的(内核)版本的Windows和Docker? - Falco Alexander
你运行的是Win10 1803更新吗?我相当确定命名管道通信是在Server 2019和Win 1809中引入的,而不是更早的版本。你能用新一点的Windows系统来检查一下吗?同时请注意,据我所知,你必须在docker run命令中指定管道。 - Falco Alexander
是的,它是Window 1803操作系统版本号为17134.523。 - Abhishek Jain
pywin32是新的pypiwin32。 - Cees Timmerman
显示剩余2条评论
2个回答

1

我遇到了同样的问题,后来发现这是由于pypiwin32==224在使用python 3.6或3.7时出现的问题。如果您使用较低版本的python,则解决方法是安装pypiwin32==220。但是对于3.6和3.7版本,此解决方法将无效,因为该版本不受支持。我建议使用支持pypiwin32==220的python版本。当我尝试运行aws-sam local时遇到了这个问题,最终我使用pip卸载了aws-sam-cli,并使用msi重新安装了它 :(


0

在Server 2019和Win 1809中,使用命名管道与Docker API进行通信被引入

您可以通过更新的1809 Windows 10来检查它。还要注意,在docker run命令中必须指定管道,例如示例显示在链接的博客文章中。

如果您无法更新计算机,则可以使用预安装的Azure Win10 VM。您可以在Azure Marketplace中找到它。不确定是否需要MSDN订阅。

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


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