浅尝Windows Server 2016——Container 容器:部署

时间:2022-07-20 10:06:36

容器上手其实挺快的,特别是在熟悉的Windows环境下。起步无非这么几件事:

1、安装Container Feature,容器功能角色

可以使用UI,当然也可以用PowerShell:

Install-WindowsFeature containers

Restart-Computer -Force

由于容器本身可以跑在物理机或者虚拟机中,可以顺便把Hyper-V也装了。

2、安装Docker

可以很炫的用PowerShell来拉取Docker引擎:

Invoke-WebRequest "https://get.docker.com/builds/Windows/x86_64/docker-1.12.1.zip" -OutFile "$env:TEMP\docker-1.12.1.zip" �CUseBasicParsing

默认解压到C:\Program Files\Docker

Expand-Archive -Path "$env:TEMP\docker-1.12.1.zip" -DestinationPath $env:ProgramFiles

当然,你手动用浏览器什么的https://get.docker.com/builds/Windows/x86_64/docker-1.12.1.zip 下载了自己解压也是没问题的。

然后要配置路径的环境变量:

如果是临时测试,可以用:

$env:path += ";c:\program files\docker"

马上就可以继续后续的PowerShell命令。

如果以后还要用,那就:

[Environment]::SetEnvironmentVariable("Path", $env:Path + ";C:\Program Files\Docker", [EnvironmentVariableTarget]::Machine)

重新打开PowerShell。

当然,也可以用传统的CMD Set Path=。。。。来配置。

接下来就要注册Docker Deamon服务了,然后启动docker服务。

dockerd --register-service

Start-Service docker

3、安装基本容器镜像

实际就是安装前文所提到的OS镜像。Windows Server 2016已经支持docker的pull和push,因此可以直接从docker hub来拉取OS镜像。

docker pull microsoft/windowsservercore

浅尝Windows Server 2016——Container 容器:部署

当然,你得连接互联网。耐心等待下载结束后,可以用docker images查看当前Host已有的镜像。

下载的镜像默认在Program Data目录下:

浅尝Windows Server 2016——Container 容器:部署

很长的UUID目录下面,有Files、Hives等不同目录。

浅尝Windows Server 2016——Container 容器:部署

另外还有空白的虚拟磁盘。这样,操作系统文件、注册表等就能够沙盒化运作。

浅尝Windows Server 2016——Container 容器:部署

顺手也可以再拉一个NanoServer的镜像。

4、部署容器镜像

能够运行在Windows Server Core或者Nano Server上的容器镜像基本上都能在microsoft registry上查看,可以直接在Docker的Hub上看到。

https://hub.docker.com/r/microsoft/#

浅尝Windows Server 2016——Container 容器:部署

当然,也可以用docker命令来查找:

docker search microsoft

我们不妨抓一个IIS来玩。

docker pull microsoft/iis

抓完了就可以用docker运行这个容器镜像。

docker run -d -p 80:80 microsoft/iis ping -t localhost

这个命令行很容易理解,后台服务形式运行一个IIS容器,将外部的80端口映射到容器内部的IIS的80端口。该容器运行个ping �Ct localhost的附件命令行。

为啥要运行额外的 ping �Ct localhost呢?这是因为没有任何进程的IIS容器很快就结束进程干掉自己了,用这个可以一直运行容器:

浅尝Windows Server 2016——Container 容器:部署

怎么干掉这个容器呢?

浅尝Windows Server 2016——Container 容器:部署

更多的命令行参数,可以参考Docker参考:

https://docs.docker.com/engine/reference/run/