Ошибка при попытке установить Docker в Windows Server 2016 с помощью Install-Module

я безуспешно пытаюсь установить Docker на Windows Server 2016:

PS C:\Windows\system32> Install-Module -Name "DockerMsftProvider" -Force -Verbose
VERBOSE: Using the provider 'PowerShellGet' for searching packages.
VERBOSE: The -Repository parameter was not specified.  PowerShellGet will use all of the registered repositories.
VERBOSE: Getting the provider object for the PackageManagement Provider 'NuGet'.
VERBOSE: The specified Location is 'https://www.powershellgallery.com/api/v2/' and PackageManagementProvider is
'NuGet'.
VERBOSE: Searching repository 'https://www.powershellgallery.com/api/v2/FindPackagesById()?id='DockerMsftProvider'' for
 ''.
VERBOSE: Total package yield:'1' for the specified package 'DockerMsftProvider'.
VERBOSE: Performing the operation "Install-Module" on target "Version '1.0.0.1' of module 'DockerMsftProvider'".
VERBOSE: The installation scope is specified to be 'AllUsers'.
VERBOSE: The specified module will be installed in 'C:\Program Files\WindowsPowerShell\Modules'.
VERBOSE: The specified Location is 'NuGet' and PackageManagementProvider is 'NuGet'.
VERBOSE: Downloading module 'DockerMsftProvider' with version '1.0.0.1' from the repository
'https://www.powershellgallery.com/api/v2/'.
VERBOSE: Searching repository 'https://www.powershellgallery.com/api/v2/FindPackagesById()?id='DockerMsftProvider'' for
 ''.
VERBOSE: InstallPackage' - name='DockerMsftProvider',
version='1.0.0.1',destination='C:\Users\x\AppData\Local\Temp\1514242672'
VERBOSE: DownloadPackage' - name='DockerMsftProvider',
version='1.0.0.1',destination='C:\Users\x\AppData\Local\Temp\1514242672\DockerMsftProvider\DockerMsftProvider.nup
kg', uri='https://www.powershellgallery.com/api/v2/package/DockerMsftProvider/1.0.0.1'
VERBOSE: Downloading 'https://www.powershellgallery.com/api/v2/package/DockerMsftProvider/1.0.0.1'.
VERBOSE: An error occurred while sending the request.
VERBOSE: Retry downloading 'https://www.powershellgallery.com/api/v2/package/DockerMsftProvider/1.0.0.1' for '2' more
times
VERBOSE: An error occurred while sending the request.
VERBOSE: Retry downloading 'https://www.powershellgallery.com/api/v2/package/DockerMsftProvider/1.0.0.1' for '1' more
times
VERBOSE: An error occurred while sending the request.
VERBOSE: Retry downloading 'https://www.powershellgallery.com/api/v2/package/DockerMsftProvider/1.0.0.1' for '0' more
times
VERBOSE: Downloading package 'DockerMsftProvider' failed, please make sure
'https://www.powershellgallery.com/api/v2/package/DockerMsftProvider/1.0.0.1' is accessable.
WARNING: Source Location 'https://www.powershellgallery.com/api/v2/package/DockerMsftProvider/1.0.0.1' is not valid.
PackageManagement\Install-Package : Package 'DockerMsftProvider' failed to download.
At C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\1.1.3.1\PSModule.psm1:1827 char:21
+ ...          $null = PackageManagement\Install-Package @PSBoundParameters
+                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ResourceUnavailable: (C:\Users\943397...tProvider.nupkg:String) [Install-Package], Excep
   tion
    + FullyQualifiedErrorId : PackageFailedInstallOrDownload,Microsoft.PowerShell.PackageManagement.Cmdlets.InstallPac
   kage

Когда вы пытаетесь получить доступ к URL-адресу через IE, это выглядит как шарм, я использую корпоративные прокси-серверы и брандмауэры и не настраиваю сеть.

РЕДАКТИРОВАТЬ: используя это, я разрешил ошибку, но получил еще одну

netsh winhttp import proxy source=ie
$webclient=New-Object System.Net.WebClient
$creds=Get-Credential
$webclient.Proxy.Credentials=$creds

теперь я получаю:

PS C:\Windows\system32> Find-Package –providerName DockerMsftProvider
WARNING: Cannot find path 'C:\Users\x\AppData\Local\Temp\DockerMsftProvider\DockerDefault_DockerSearchIndex.json'
 because it does not exist.
WARNING: Save-HTTPItem: Bits Transfer failed. Job State: BG_JOB_STATE_ERROR ExitCode = 0

Предложения?

РЕДАКТИРОВАТЬ 2: Ребята, установка переменных env HTTP_PROXY и HTTPS_PROXY работает для меня https://docs.docker.com/engine/admin/systemd/#httphttps-proxy


person Yuri    schedule 11.08.2017    source источник
comment
IE может быть настроен для правильного прохождения прокси-серверов, а PowerShell — нет. Invoke-WebRequest https://www.powershellgallery.com/api/v2/package/DockerMsftProvider/1.0.0.1 работает? Если нет, ошибка должна дать вам подсказку.   -  person Jeroen Mostert    schedule 11.08.2017
comment
Не работает: Invoke-WebRequest: неверный запрос. Как заставить мой PowerShell работать с конфигурациями прокси?   -  person Yuri    schedule 11.08.2017


Ответы (5)


Я пробовал все вышеперечисленное решение, но не мог заставить его работать, пока не запустил эту команду.

   set-executionpolicy unrestricted

Наконец, следующие шаги сработали для меня:

[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
 
set-executionpolicy unrestricted
 
Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force

Install-Module -Name DockerMsftProvider -Force

Install-Package -Name docker -ProviderName DockerMsftProvider -Force
Restart-Computer -Forc
person onlyme    schedule 02.11.2020

Вы можете попробовать ручная установка.

person friism    schedule 11.08.2017
comment
проверить мое издание - person Yuri; 11.08.2017

Это очень классика. После выполнения Invoke-WebRequest https://www.powershellgallery.com/api/v2/package/DockerMsftProvider/1.0.0.1 я сразу увидел проблему: Invoke-WebRequest : The request was aborted: Could not create SSL/TLS secure channel.

Я предполагаю, что они начали применять SSL/TLS v1.2.

Запустите это в том же сеансе на компьютерах, которые по умолчанию не используют TLS1.2: [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

После этого такие команды, как Install-Module -Name "DockerMsftProvider" -Force -Verbose, должны работать нормально.

person Hulvej    schedule 22.04.2020

Попробуйте выполнить приведенную ниже команду в Powershell от имени администратора.

  1. [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

  2. Install-PackageProvider — имя NuGet

  3. Install-Module DockerMsftProvider-Force

  4. Install-Package Docker -ProviderName DockerMsftProvider -Force

person Vivek Raj    schedule 18.08.2020

Я попытался выполнить следующие шаги.

Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force

Install-Module -Name DockerMsftProvider -Force

Install-Package -Name docker -ProviderName DockerMsftProvider -Force

Restart-Computer -Force
person Latchu    schedule 30.12.2020