引言:对于在winserver 2019上安装docker,官方有说明,网上也有教程,但是大部分都是和官方的方法一样,在这安装过程中往往会因为这样或那样的问题导致过程受阻,停滞不前,最近折腾winserver的docker(linux已经折腾完毕),坑还是比较多的,通过个人的一些经验,进行此次总结,主要目的是提供一种简单易用的安装方法,当然,你要是通过官方那样敲几条命令就能安装,那固然很好,我主要是为了能够实现离线安装,此文同样适用于winserver 2016机器。不多说,直接上干货。
1、官方提供的方法(需要联网)
(1)步骤一:
Install-Module -Name DockerMsftProvider -Repository PSGallery -Force #这一步骤是安装DockerMsftProvider模块,如没有NuGet程序,则会提示你安装,NuGet是包管理程序,这个必须要你安装,无法跳过
(2)步骤二:
Install-Package -Name docker -ProviderName DockerMsftProvider #利用上述安装的模块来安装docker包,这一步会下载一个docker的zip包
总结一下:按照官网这种方式来安装,首先你要安装NuGet程序,然后安装DokcerMsftProvider,最后利用DokcerMsftProvider来安装docker,这一步还是会下载docker的zip包,最最主要的就是这最后一步,前面下载程序没什么好说的,这最后一步到底干了什么?其实主要做了如下5件事情:
(1)下载docker的zip包(里面是一堆的exe程序,包含了服务端dockerd和客户端docker等一系列的docker程序)
(2)解压docker zip包到 C:\Program Files\Docker 目录,创建 C:\ProgramData\Docker\config 目录
(3)添加环境path
C:\Program Files\Docker #将这个路径添加到系统环境变量,其实就是为了能够在 PowerShell中全局执行docker命令
(4)利用winserver的服务器管理器安装Containers(容器)功能,此功能不安装,无法启动docker服务端
(5)启动docker服务端,并将其注册为服务,这一步需要确保 C:\ProgramData\Docker\config 下具有 daemon.json 文件
OK !到这里我们清楚了,它在这个安装过程中具体干了些什么事情,那么我们还有必要安装NuGet和DokcerMsftProvider这个2玩意儿?没必要,我们完全可以自己下载docker的zip包,手动实现这些过程!当然,你要是一些列命令敲下来啪啪啪就全部安装好了,那么你也没必要看这个文章了,作者照着敲了一堆命令,不是这个程序包下不到,就是那个程序包下不到,也是头疼的很。下面进入正题,离线安装方式!
2、手动离线安装
环境要求:winserver 2019 标准版 或 winserver 2016 标准版一台
资源要求:docker离线包,本文基于docker-19-03-5.zip进行安装
docker zip包下载地址: https://dockermsft.blob.core.windows.net/dockercontainer/docker-19-03-5.zip
步骤一:
解压 docker-19-03.zip到 C:\Program Files\Docker 下,其中Docker目录需要手动创建
步骤二:
创建 C:\ProgramData\Docker\config 目录,在config目录下创建 daemon.json 文件,其内容可为
{
"insecure-registries":["192.168.1.135:5000"]
}
作者在此处加了一个本地的镜像仓库,请根据实际情况修改,为空也可以。
步骤三:
添加系统环境path环境变量:我的电脑 > 属性 > 高级系统设置 > 环境变量 > 新建
步骤四:将dockerd注册为服务
以管理员身份进入CMD执行如下指令:
cd C:\Program Files\Docker # 进入dockerd.exe所在目录路径
dockerd --register-service # 将dockerd 注册为服务
步骤五:安装Containers功能,安装需要重启
步骤六:开始玩docker
PS:docker服务端启动后,会创建一块虚拟网卡,创建的容器将以这块网卡为网关,所以不要删除它,如下: