Поддержка клиента Docker python для Windows 10

Я установил клиент docker python на компьютер с Windows 10. На моем компьютере запущена python-3.7 версия и pypiwin32 версия 223. Я также могу импортировать докер-клиент, но когда я пытаюсь использовать один из классов from_env() для создания объекта, он выдает ошибку:

import docker
docker.from_env() 

Отслеживание (последний вызов последним):
Файл "C: \ Users \ abhishek.jain \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ site-packages \ docker \ client.py", строка 74, в < strong> init self._custom_adapter = NpipeAdapter (NameError: имя 'NpipeAdapter' не определено

Во время обработки вышеуказанного исключения произошло другое исключение:

Отслеживание (последний вызов последним): файл "", строка 1, в 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 'Установите пакет pypiwin32, чтобы включить поддержку npipe: //' docker.errors.DockerException: установите пакет pypiwin32, чтобы включить поддержку npipe: //

Не могли бы вы подтвердить, поддерживает ли клиент docker python Window 10?


person Abhishek Jain    schedule 11.01.2019    source источник
comment
Вы пробовали предложение, предоставленное ошибкой: Установите пакет pypiwin32, чтобы включить поддержку npipe: //   -  person Gerben Jongerius    schedule 11.01.2019
comment
уже установлена ​​версия 223 pypiwin32 ... Эта версия кажется правильной версией для Python3.7 Если я правильно понял документацию ... C: \ Users \ abhishek.jain ›pip install pypiwin32 Требование уже выполнено: pypiwin32 in 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 (из pypiwin32) (223) C: \ Users \ abhishek.jain ›   -  person Abhishek Jain    schedule 12.01.2019
comment
Какая именно (ядерная) версия Windows и Docker у вас установлена?   -  person Falco Alexander    schedule 14.01.2019
comment
Docker версии 18.09.0, сборка 4d60db4 Название ОС - версия Microsoft Windows 10 Pro - 10.0.17134 сборка 17134 Сообщите мне, если вам потребуется дополнительная информация для дальнейшего изучения этой проблемы   -  person Abhishek Jain    schedule 14.01.2019
comment
так вы запускаете Win10 1803 Update? Я совершенно уверен, что именованная связь по каналу была введена в server 2019 и win 1809, но не ранее. Можете ли вы проверить это на более новой Windows? также имейте в виду, что вы должны указать каналы в команде docker run afaik.   -  person Falco Alexander    schedule 14.01.2019
comment
да это Window 1803 OS build 17134.523   -  person Abhishek Jain    schedule 15.01.2019
comment
pywin32 - это новый pypiwin32   -  person Cees Timmerman    schedule 27.05.2021


Ответы (2)


Контейнеры именованные каналы связи с Docker API были представлен в Server 2019 и Win 1809.

Вы можете проверить это с помощью обновленной Windows 10 1809, имейте также в виду, что вы должны указать каналы в команде запуска докера, например, показать это в связанном сообщении в блоге.

Если вы не можете обновить свой компьютер, вы можете сделать это с помощью предустановленных виртуальных машин Azure Win10. Вы найдете его в Azure Marketplace. Не уверен на 100%, нужна ли для этого подписка MSDN.

Кстати, с последней версией Docker Desktop 18.09.1 ​​работает изоляция процессов, поэтому вам даже не понадобится (вложенная) виртуализация (Azure) или Hyper-V (локальная).

person Falco Alexander    schedule 15.01.2019

Итак, у меня такая же проблема, и я понял, что это проблема из-за pypiwin32 == 224, если вы используете python 3.6 или 3.7. Обходной путь, если вы используете более низкую версию python, - это установить pypiwin32 == 220. этот обходной путь не будет работать для версий 3.6 и 3.7, так как эта версия не поддерживается. Я бы посоветовал работать с версией python, которая поддерживает pypiwin32 == 220. Я столкнулся с этой проблемой, когда попытался запустить aws-sam local, и в конце я удалил aws-sam-cli с помощью pip и установил его с помощью msi :(

person Amaioka    schedule 21.02.2019