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的构架大致是:
如果了解应用虚拟化+桌面虚拟化的架构,其实和Container有点类似。将OS和应用分离,进程或者示例间隔离,实现松散耦合。Container的粒度可以变得更细。可以使用沙盒化实现容器的无状态,也能够将数据剥离。
对照着看Docker和Container理解起来更快一点吧,有两个很好的快速了解的页面:
先看Docker的:
Docker Overview
https://docs.docker.com/engine/understanding-docker/
可以看到,有一些基本要素:
核心的有: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虚机。宿主机上运行的容器不再共享内核。
有了这样的概念,接下来部署容器就不会像一小时前的我一样一头雾水了。