容器上手其实挺快的,特别是在熟悉的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
当然,你得连接互联网。耐心等待下载结束后,可以用docker images查看当前Host已有的镜像。
下载的镜像默认在Program Data目录下:
很长的UUID目录下面,有Files、Hives等不同目录。
另外还有空白的虚拟磁盘。这样,操作系统文件、注册表等就能够沙盒化运作。
顺手也可以再拉一个NanoServer的镜像。
4、部署容器镜像
能够运行在Windows Server Core或者Nano Server上的容器镜像基本上都能在microsoft registry上查看,可以直接在Docker的Hub上看到。
https://hub.docker.com/r/microsoft/#
当然,也可以用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容器很快就结束进程干掉自己了,用这个可以一直运行容器:
怎么干掉这个容器呢?
更多的命令行参数,可以参考Docker参考: