微软与 Docker 发布 Windows Server 容器预览版

  • João Miranda
  • 金灵杰

2015 年 9 月 16 日

话题:WindowsDevOps语言 & 开发

现在可以在容器内运行专门针对 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 读者交流群)。

WindowsDevOps语言 & 开发