这里是普通文章模块栏目内容页
Windows Server 2016 下安装docker

一、打开windows PowerShell,输入以下命令进行安装Docker

1)安装oneget PowerShell模块
Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.208 -Force #指定Nuget最小版本
 
2)使用oneget 安装最新版本docker
Install-Module -Name DockerMsftProvider -Force     #安装docker模块
powershell中询问你是否确实要安装来自“DockerDefault”的软件,输入“A”回车继续。
 
3)Install-Package -Name docker -ProviderName DockerMsftProvider -Force #安装docker包
 
安装完成重启计算机
Restart-Computer -Force #重新启动

述第三步可能会出错:

警告: C:\Users\ADMINI~1\AppData\Local\Temp\2\DockerMsftProvider\Docker-19-03-1.zip does not exist
Install-Package : 找不到路径“C:\Users\ADMINI~1\AppData\Local\Temp\2\DockerMsftProvider\Docker-19-03-1.zip”,因为该路
径不存在。

可以看出文件不存在,定位到“C:\Users\ADMINI~1\AppData\Local\Temp\2\DockerMsftProvider”目录,打开DockerDefault_DockerSearchIndex.json文件,搜索“Docker-19-03-1.zip”,找到下载路径,手动下载

将下载好的文件,复制到“C:\Users\ADMINI~1\AppData\Local\Temp\2\DockerMsftProvider”目录

然后运行以下命令

Find-Package -ProviderName  DockerMsftProvider | Install-Package -Verbose

大功告成!

 

二、设置开启2375端口,提供外部访问docker

# Open firewall port 2375
netsh advfirewall firewall add rule name="docker engine" dir=in action=allow protocol=TCP localport=2375
 
# Configure Docker daemon to listen on both pipe and TCP (replaces docker --register-service invocation above)
Stop-Service docker
dockerd --unregister-service
dockerd -H npipe:// -H 0.0.0.0:2375 --register-service
Start-Service docker

三、卸载

Uninstall-Package -Name docker -ProviderName DockerMSFTProvider

四、常见问题

 

initrd 'C:\Program Files\Linux Containers\initrd.img' not found

运行以下命令:

mkdir "$Env:ProgramFiles\Linux Containers”
Invoke-WebRequest -UseBasicParsing -OutFile linuxkit.zip https://github.com/friism/linuxkit/releases/download/preview-1/linuxkit.zip
Expand-Archive linuxkit.zip -DestinationPath "$Env:ProgramFiles\Linux Containers\."
rm linuxkit.zip