现在可以在容器内运行专门针对 Windows 操作系统的软件了。 Windows Server 2016 技术预览版 3 是第一个支持该项技术的 Windows 版本。 Windows Server 容器提供了和 Linux 容器非常类似的功能,但是它需要在 Windows 生态系统的上下文中。Docker 也发布了它的技术预览版,展示了它是如何管理 Windows 容器的。
正如 Docker 工程经理 Arnaud Porterie所述,由于操作系统的根本差异,Docker 的Linux 和Windows 功能集将不可能完全相同。尽管如此,大部分Docker 命令可以在这两种容器技术上都能够正常工作。Dockerfile 和docker build 命令都已经支持。不过,docker push 命令在这次发布的版本中还不支持。
微软构建了 hcsshim ,它为 Docker 执行 Windows Server 上的容器提供了执行驱动。所谓的执行驱动是 Docker 中的一个模块,用于调用内核代码来执行容器。它的每种实现都针对一个特定的操作系统,因此为 Windows Server 容器提供的 Docker 守护进程无法运行 Linux 镜像。
PowerShell 也能够管理Windows Server 容器。目前一个工具(如PowerShell)创建的容器,对于另一个工具(即Docker)是不可见的。二者之间的差异解释了这样的行为。差异的范围,从大小写这种简单的问题,到条件竞争这种复杂的场景。这对于长期来说不是一个期望的行为,因此在后续发展道路上,这些事情可能会有所改变。
微软还推出了Hyper-V 容器,它像是在Hyper-V 分区中的Windows Server 容器。Hyper-V 容器用Windows Server 容器的速度和效率,交换了更好的隔离性和安全性。在多租户系统场景中,Hyper-V 容器就是一种优选的解决方案。
微软,和Docker、Google 等行业巨头,都是开放容器倡议(Open Container Initiative,OCI)的创始成员。开放容器倡议旨在创建“围绕着容器格式和运行时的开放行业标准”。Docker 捐赠了 runC ,将其容器格式和运行时提供给开放容器倡议。开放容器规范可以在GitHub 上进行阅读。
尝试这种技术最简单的方法是遵循快速入门指南在Azure 上运行Windows Server 容器。Azure 已经提供了Windows Server 2016 技术预览版3 的镜像。也可以在 Hyper-V 虚拟机或者 Windows Server 2016 技术预览版核心安装中尝试 Windows Server 容器。
Windows Server 容器仍然在开发中,因此值得去看一看已知问题,例如因为反恶意软件解决方案导致的容器启动速度慢等。 Windows Server 容器论坛是提问的好地方,有微软工程师会回答一些问题。Lumagate 公司的首席技术官 Kristian Nese 正在撰写以 Windows 世界中的容器为话题的系列文章。
查看英文原文: http://www.infoq.com/news/2015/09/windows-server-containers
感谢张龙对本文的审校。
给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ , @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群)。
评论