初窥Windows Server Container

前言

          相信你们对于Docker这项技术都有必定了解了,Container是一种轻量级的解决方案,很是适合将传统windows平台上的无状态服务迁移上去(相对于VM虚拟化更加可以提升总体资源利用率),加上微软的大部分技术架构都是能够整合的,而采用linux下的docker整合起来效果并非特别好(好比我曾经尝试着用scom监控linux下Container,虽然成功了可是效果并非很好),因此对于Windows平台的Docker我就更加期待了。今天我就把近一段时间一直零零散散作的一些小demo来作个汇总。 linux

(图为微软Container示意图)nginx

在开始以前,先啰嗦几句:docker

因为目前Windows Container仍处于TP3阶段(技术预览),因此存在Bug是正常的,如下是官方的原话:windows

Remember, this is a preview there are bugs and we have a lot of work in progressThis page contains many of our known issues.Be aware that there are some known Docker commands that don't work and some that only partially work架构

简单翻译下,其实就是一句话:“没有Bug才不正常呢”,因此千万别在生产环境试水Windows Container(至少等到发布)app

实验部分

        今天这个实验的目录是经过Windows Container建立一个Nginx Container(至于为何不建立IIS Container,后面有讲述),仅做实验参考。ide


一、  新建Windows Server Container:测试


                                          

二、  输入相关配置信息后建立完成,注意咱们这里先映射出8001端口做为测试端口用:ui


三、  建立完成后,链接到Docker Host上,使用wget -uri 'http://nginx.org/download/nginx-1.9.3.zip' -OutFile "c:\nginx-1.9.3.zip"获取源码nginx部署包,而后建立Dockerfile,new-item -Type File c:\docker\nginx\dockerfilethis


四、  使用Expand-Archive -Path C:\nginx-1.9.3.zip -DestinationPath C:\docker\nginx\source –Force将源码解压到咱们建立的目录上,待会儿dockerfile会调用到:


五、  使用notepad.exe c:\docker\nginx\dockerfile开始编写dockerfile内容:

FROM windowsservercore

LABEL Description="nginx For Windows" Vendor="nginx" Version="1.9.3"

ADD source /nginx


六、  而后使用docker build -t nginx_windows C:\docker\nginx开始使用dockerfile建立nginx p_w_picpaths:


七、  接着咱们就能够在p_w_picpaths中看到咱们刚刚建立的p_w_picpath:


八、 咱们就可使用docker run -it --name VMC-NGC01 -p 8001:80 nginx_windows cmd调用刚刚建立的p_w_picpaths去建立Container了,建立后以下:


九、  建立完成后是直接会进入Container里面的,在Container下运行cd c:\nginx\nginx-1.9.3进入nginx主目录,并使用start nginx启动服务:


十、 接着咱们访问下站点页面,因为咱们没有建立主页,因此访问为403(能够看到我并无使用8001),然而我并无找到好的方法能够修改到nginx.conf这个文件(请见Bug列表):


关于Windows Container IIS方面的尝试

一、  在不一样平台的Docker上搜索IIS p_w_picpaths:

     a、Windows Container下搜索:


    b、而在Linux Container下搜索IIS是这样的(虽然多是由于Docker镜像库不一样,不过就算修改了Linux上的镜像库,我认为应该不能正常在Linux Docker上进行运行):

二、 不知道什么缘由,部署IIS Container1老是失败的:

    a、使用Images方式建立(在端口映射正确的前提下,虽然成功建立,且Container中的iis服务正常,而且还手动建立了IIS站点并开启,仍然没法访问):

   

 b、即便是使用微软GitHub上的DockerFile+PowerShell脚本建立,仍然是有问题的(采用了最新版本的TP3 Container及10月份的最新脚本):


 

关于TP版目前存在的疑似Bug

一、  映射端口没法生效,好比上述例子用了8001映射Container的80端口,然而8001端口并无生效。     


二、  映射端口并不会出如今docker ps中(能够用Get-NetNatStaticMapping):


三、  进入部分docker container中运行命令常常出现卡死状况(命令没法跳到下一行),好比打开某些文本文件时:


四、  目前windows container的Container名字仍是大小写敏感的(这点跟linux版无异,不知道算不算bug)

结语

    最近听了台湾的MS专家冯立伟老师关于Windows Container的课后,更加印证了我以前的想法,未来的架构极有多是

     固然一切还得等Hyper-V Container出来,让咱们一块儿期待。

    因为最近博主正在为自家公司部署VMCloud Plus版本,因此更新周期变长了,可是,只要发现新奇玩意儿,博主都会不断去实践,即便进度很慢,即便困难不少,也会坚持完成,借此来感谢各位的关注:)





职场巅峰之路(已更新)

http://mp.weixin.qq.com/s?__biz=MzAxNzIxNDA2OQ==&mid=208028889&idx=1&sn=a6cff33094b29329fd6c364272df66cc&scene=18#rd

VMCloud-OPC

http://vmcloud.com.cn

080515_0626_VMCloud4.png

相关文章
相关标签/搜索