Docker正火,衍生的微服务平台吸引无数创业者。作为兼顾操作系统、虚拟化平台、私有云、公有云的“传统”厂商——微软,很早就计划在Windows平台上支持Container容器技术。

从NT时代就开始膜拜的大神 Mark Russinovich,加入微软做CTO之后,在去年也发表了文章,详细描述了Docker潮流下Windows的容器趋势。详见:

 

Containers: Docker, Windows and Trends

https://azure.microsoft.com/zh-cn/blog/containers-docker-windows-and-trends/ 

简单说,Container的构架大致是:

浅尝 Windows Server 2016 —— Container 容器:概念

如果了解应用虚拟化+桌面虚拟化的架构,其实和Container有点类似。将OS和应用分离,进程或者示例间隔离,实现松散耦合。Container的粒度可以变得更细。可以使用沙盒化实现容器的无状态,也能够将数据剥离。

 

对照着看Docker和Container理解起来更快一点吧,有两个很好的快速了解的页面:

先看Docker的:

Docker Overview

https://docs.docker.com/engine/understanding-docker/

浅尝 Windows Server 2016 —— Container 容器:概念

可以看到,有一些基本要素:

核心的有:Docker_Host,Images,Containers,Registry

还需要有:Docker deamon,Docker Client,Dockerfile

 

对照查看微软的

Container Overview

https://msdn.microsoft.com/en-us/virtualization/windowscontainers/quick_start/quick_start

 

核心的有:Container Host,Container OS Image,Container Image,Container Registry

也都还有:Dockerfile

 

这些组件的作用是:

Container Host:承载容器的宿主机,可以是物理机也可以是虚机

Container OS Image:操作系统镜像,提供操作系统环境

Container Image:容器镜像,包含基本OS,应用以及快速部署容器所需应用的依存

Container Registry:容器注册,容器镜像存放在容器注册中,可供按需下载。既可以是私有注册,也可以是公有注册。

Dockerfile:用来自动生成容器镜像的文件,有标准的格式。Docker中看到的Linux的和Windows容器的框架一致,但内容不同。

 

本身Windows容器又分为两种:

Windows Server容器:通过进程和命名空间隔离技术提供应用隔离。宿主机上运行的所有Windows Server容器共享宿主机的内核Kernel。

Hyper-V 容器:将Windows Server容器的隔离扩展到优化的Hyper-V虚机。宿主机上运行的容器不再共享内核。

 

有了这样的概念,接下来部署容器就不会像一小时前的我一样一头雾水了。