docker 警告:无法找到模块存储库

kxe2p93d  于 2023-04-05  发布在  Docker
关注(0)|答案(6)|浏览(119)

我尝试在激活的Windows Server 2016标准上安装Docker。我执行“Install-Module -Name DockerMsftProvider -Repository PSGallery -Force”但失败。它建议找不到PSGallery。我执行"Get-PSRepository"
错误:

警告: 找不到模块仓库 .

我在谷歌上搜索了三种方法来解决这个问题,但没有一种方法奏效。

  1. Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Verbose -Force成功执行
    1.我成功安装了chocolatey。
    1.我执行"powershell Register-PSRepository -Name "PSGallery" –SourceLocation "https://www.powershellgallery.com/api/v2/" -InstallationPolicy Trusted"但是失败了。它要求我使用"Register-PSRepository -Default"
    我试过"powershell Register-PSRepository -Default -Name "PSGallery" –SourceLocation "https://www.powershellgallery.com/api/v2/" -InstallationPolicy Trusted",但还是失败了。
    我怎样才能解决这个问题?
yhxst69z

yhxst69z1#

使用the deprecation of TLS 1.0 and 1.1 for PowerShell Gallery as of April 2020时,cmdlet Update-Module和Install-Module已损坏。因此,according to this article需要执行一些命令以使它们再次激活:

[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 
Install-Module PowerShellGet -RequiredVersion 2.2.4 -SkipPublisherCheck

如果仍然不起作用,那么运行以下命令:

[Net.ServicePointManager]::SecurityProtocol = [Net.ServicePointManager]::SecurityProtocol -bor [Net.SecurityProtocolType]::Tls12
Register-PSRepository -Default -Verbose
Set-PSRepository -Name "PSGallery" -InstallationPolicy Trusted

TLS 1.0和1.1最近也在www.example.com上被弃用NuGet.org:x1c 0d1x But that was also previously announced

42fyovps

42fyovps2#

简单地运行Register-PSRepository -Default(没有任何额外的参数)对我来说是有效的。之后,画廊成功注册:

PS C:\Windows\system32> Get-PSRepository

Name                      InstallationPolicy   SourceLocation
----                      ------------------   --------------
PSGallery                 Untrusted            https://www.powershellgallery.com/api/v2/
fgw7neuy

fgw7neuy3#

我的问题是缺少Proxy配置

评论中的最佳解决方案:https://www.zerrouki.com/working-behind-a-proxy/
感谢@Vadzim
在PowerShell中打开配置文件

PS> notepad $PROFILE

这打开记事本与您的配置文件设置,将被创建或不存在.
然后加上:

[system.net.webrequest]::defaultwebproxy = new-object system.net.webproxy('http://webproxy.yourCompany.com:PORT')
[system.net.webrequest]::defaultwebproxy.credentials = [System.Net.CredentialCache]::DefaultNetworkCredentials
[system.net.webrequest]::defaultwebproxy.BypassProxyOnLocal = $true

不知何故,我的本地代理设置,但不工作。同样的问题,稍后与Docker,=〉

> PS> [Environment]::SetEnvironmentVariable("HTTP_PROXY", http://username:password@proxy:port/", [EnvironmentVariableTarget]::Machine)

然后重启Docker服务

pftdvrlh

pftdvrlh4#

我得到了类似的消息。我运行Register-PSRepository -default,它注册正常。然后我运行Set-PSRepository -Name PSGallery -InstallationPolicy Trusted。我没有合并命令,但它工作了。
我花了一个多小时的时间试图像在Exchange Online上一样将凭据传递给代理,但没有爱。我断开连接并使用我们的访客WiFi。

ux6nzvsh

ux6nzvsh5#

还有一件事没有提到。你确实需要跑

notepad $profile

然后复制粘贴这一位更改您的代理详细信息:

[system.net.webrequest]::defaultwebproxy = new-object system.net.webproxy('http://webproxy.yourCompany.com:PORT')
[system.net.webrequest]::defaultwebproxy.credentials =  System.Net.CredentialCache]::DefaultNetworkCredentials
[system.net.webrequest]::defaultwebproxy.BypassProxyOnLocal = $true

但是,如果打开了HTTPS检查,则可能需要将中间人证书添加到"Trusted Root Certification Authorities"

hpcdzsge

hpcdzsge6#

配置正确的TLS版本导致以下错误:

PS /> [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12                                  
PS /> Install-Module PowerShellGet -RequiredVersion 2.2.4 -SkipPublisherCheck
Install-Package: No match was found for the specified search criteria and module name 'PowerShellGet'. Try Get-PSRepository to see all
available registered module repositories.
PS /> Get-PSRepository -Verbose
WARNING: Unable to find module repositories.

如果您在公司代理服务后工作,则可能需要向CA添加信任。

cp my.crt /usr/local/share/ca-certificates/
update-ca-certificates

更新信任存储后,我们可以查询powershell存储库。

PS /> Get-PSRepository

Name                      InstallationPolicy   SourceLocation
----                      ------------------   --------------
PSGallery                 Untrusted            https://www.powershellgallery.com/api/v2

相关问题