Windows Server2016 安装docker 所踩的坑

本文档详细介绍了在Windows Server 2016上安装Docker的步骤,包括如何使用PowerShell、解决TLS问题、下载Docker包失败的处理方法以及安装过程中可能出现的其他错误。主要难点在于更新安全协议、手动下载Docker包及处理找不到路径的错误。通过这些步骤,用户可以成功安装并启动Docker服务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

【献给小白用户】

首先参考官网文档:

https://docs.microsoft.com/zh-cn/virtualization/windowscontainers/deploy-containers/deploy-containers-on-server

https://docs.microsoft.com/zh-cn/virtualization/windowscontainers/quick-start/set-up-environment?tabs=Windows-Server

 

windows server2016 需要用PowerShell来安装Docker,那么PowerShell是什么,在哪里打开?首先PowerShell不是命令提示符,也不是命令提示符(管理员)。

1、打开PowerShell(windows server2016默认是已安装的,如果没有,请从服务器管理员中进行安装)

介绍两种打开方法:

a、打开PowerShell最简单的方法是,在开始菜单里找到并打开它(最好是以管理员的身份运行),如:

b、打开命令提示符,输入PowerShell,打开,或者运行里输入PowerShell命令。

            

 

2、安装Docker

a、从 PowerShell 库安装 Docker-Microsoft PackageManagement 提供程序。

运行命令,安装DockerMsftProvider

Install-Module -Name DockerMsftProvider -Repository PSGallery -Force

这一步,可能会提示你安装NuGet,那么请按"y",选择安装。

 

此处可能会遇到的坑一:

执行Install-Module -Name DockerMsftProvider -Repository PSGallery -Force 命令时,提示你安装NuGet provider,选择“y”以后,又告知https://go.microsoft.com/fwlink/?LinkID=627338&clcid=0x409 找不到安装包,如下图:

需要使用 NuGet 提供程序来继续操作
 PowerShellGet 需要使用 NuGet 提供程序"2.8.5.201"或更高版本来与基于 NuGet 的存储库交互。必须在"C:\Program
 Files\PackageManagement\ProviderAssemblies"或"C:\Users\Fan
 Dean\AppData\Local\PackageManagement\ProviderAssemblies"中提供 NuGet 提供程序。也可以通过运行
 'Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force' 安装 NuGet 提供程序。是否要让 PowerShellGet
  立即安装并导入 NuGet 提供程序?
 [Y] 是(Y)  [N] 否(N)  [S] 暂停(S)  [?] 帮助 (默认值为"Y"):
 警告: 无法下载可用提供程序列表。请检查 Internet 连接。
 PackageManagement\Install-PackageProvider : 找不到提供程序"NuGet"的指定搜索条件的匹配项。程序包提供程序要求 "Pac
 kageManagement" 和 "Provider" 标记。请检查指定的程序包是否具有标记。
 所在位置 C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\1.0.0.1\PSModule.psm1:7468 字符: 21
 ...

对于此问题,主要是由于TLS引起的,需要运行一条命令:

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

参考文档:https://jaapwesselius.com/2020/04/08/install-module-msonline-fails-with-unable-to-download-from-uri/

然后,再次安装NuGet provider就可以了。

Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force

此坑的总体解决方式如下:

PS C:\Users\Administrator> [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
PS C:\Users\Administrator> Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force

Name                           Version          Source           Summary
----                           -------          ------           -------
nuget                          2.8.5.208        https://onege... NuGet provider for the OneGet meta-package manager


PS C:\Users\Administrator> Install-Module posh-ssh

此处可能会遇到的坑二:

安装了NuGet provider后,重新执行命令 Install-Module -Name DockerMsftProvider -Repository PSGallery -Force,会发现还是安装不了,如下图:

这是当前选择的仓库不能使用,即 -Repository PSGallery 参数。

我的解决方式是,不使用此参数,直接执行:Install-Module -Name DockerMsftProvider -Force

Install-Module -Name DockerMsftProvider -Force

b、使用 PackageManagement PowerShell 模块安装最新版本的 Docker。

Install-Package -Name docker -ProviderName DockerMsftProvider -Force

PowerShell 询问是否信任包源“DockerDefault”时,键入 A 以继续进行安装。

第二步可能遇到的坑:找不到路径(此坑有参考别的网站)

这是什么鬼,怎么会出错啊!静下心来看看错误Install-Package : 找不到路径“C:\Users\ADMINI~1\AppData\Local\Temp\DockerMsftProvider\Docker-1-12-2-cs2-ws-beta.zip”,

那我们就打开这个地址去看看结果发现:

打开这个json 文件我们打开看看

看到这个我明白了,原来是没有下载下来这个包那么我们手动下载吧,

https://dockermsft.blob.core.windows.net/dockercontainer/docker-1-12-2-cs2-ws-beta.zip

 "url":  "https://dockermsft.blob.core.windows.net/dockercontainer/docker-17-06-2-ee-13.zip", 直接下载到本地。

然后我们把包放到C:\Users\ADMINI~1\AppData\Local\Temp\DockerMsftProvider目录下然后,再运行以下命令

Find-Package –roviderName DockerMsftProvider | Install-Package -Verbose

看到提示后我们在输入A 然后回车即可。到此这个坑已填。

 

接下来总结一下,第二步的坑:提示"docker xx"文件不存在,操作方法如下:

 

①、先需要记住这个文件名,然后到这个地址去下载:https://dockermsft.blob.core.windows.net/dockercontainer。

比如提示" docker-17-03-1-ee.zip"不存在,则访问 https://dockermsft.blob.core.windows.net/dockercontainer/docker-17-03-1-ee.zip进行下载。

②、下载完成之后(可以再执行一次命令:Install-Package -Name docker -ProviderName DockerMsftProvider,注意是在执行后,复制文件到这个目录,如果在执行前复制,程序会先删除然后再处理的),

打开目录" C:\Users\Administrator\AppData\Local\Temp\2\DockerMsftProvider",将docker-17-03-1-ee.zip复制到此目录下,此时你应该看到该目录有个xx.tmp的临时文件。

③、执行一下命令:Find-Package –roviderName DockerMsftProvider | Install-Package -Verbose

 

 

c、在安装完成后,请重启计算机。

Restart-Computer -Force

d、开启Docker服务

Start-Service Docker

安装完成,主要的坑都在第一步。

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值