Windows Server 2016环境下PowerShell安装Docker失败求助
在Windows Server 2016上通过PowerShell安装Docker失败的解决方案
问题重现
执行的PowerShell命令:
[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
出现的错误信息:
WARNING: 找不到路径“C:\Users\AZUREL~1\AppData\Local\Temp\2\DockerMsftProvider\DockerDefault_DockerSearchIndex.json”,因为该路径不存在。
WARNING: 无法将参数绑定到参数“downloadURL”,因为该参数是空字符串。
WARNING: 在此对象上找不到属性“AbsoluteUri”。请验证该属性是否存在。
WARNING: 在此对象上找不到属性“RequestMessage”。请验证该属性是否存在。
Install-Package : 未找到符合指定搜索条件和包名称“docker”的匹配项。请尝试 Get-PackageSource 查看所有可用的已注册包源。
At line:9 char:1
- Install-Package -Name docker -ProviderName DockerMsftProvider -Force
+ CategoryInfo : ObjectNotFound: (Microsoft.Power....InstallPackage:InstallPackage) [Install-Package], Exception + FullyQualifiedErrorId : NoMatchFoundForCriteria,Microsoft.PowerShell.PackageManagement.Cmdlets.InstallPackage
解决步骤
1. 清理DockerMsftProvider缓存
缓存文件损坏或未正确拉取是常见诱因,先删除临时目录下的相关文件:
Remove-Item -Path "C:\Users\$env:USERNAME\AppData\Local\Temp\DockerMsftProvider" -Recurse -Force -ErrorAction SilentlyContinue
2. 手动注册Docker官方包源
DockerMsftProvider可能无法自动获取有效源,手动添加官方索引地址:
Register-PackageSource -Name DockerDefault -ProviderName DockerMsftProvider -Location "https://download.docker.com/components/engine/windows-server/index.json"
3. 重新执行安装命令
清理并注册源后,再次运行安装命令:
Install-Package -Name docker -ProviderName DockerMsftProvider -Force -Verbose
4. 备选:手动下载安装包(若上述方法失效)
直接下载适配Windows Server 2016的Docker EE安装包(需17.06及以上版本),运行安装包完成部署后,执行以下命令启动并设置开机自启:
Start-Service Docker Set-Service Docker -StartupType Automatic
5. 验证安装结果
安装完成后,执行以下命令确认Docker正常运行:
docker --version docker run hello-world
内容的提问来源于stack exchange,提问作者Nashaf
相关产品推荐
相关产品推荐

