具有Docker部署Windows容器的Linux机器

我有一个安装了docker主机的16GB内存的Linux服务器。 我想部署一个Windows Server容器。 可能吗? 任何人都试过这个解决scheme?

理论上(原文答案2015年10月):

在Linux主机上没有运行“Windows容器”。
Linux容器不能直接在Windows服务器上运行,因为它依赖于对Linux内核的系统调用 。

您当然可以通过虚拟机在任何Windows计算机上运行这些Linux容器。
这是docker工具箱将安装 。

Docker很快就会支持Docker ,但是这将是Windows容器,而不是Linux容器。

更新2017年 :是的,LinuxKit允许通过一个Windows平台上的Hyper-V隔离包装器,通过一个由linuxkit构build的最小的Linux操作系统来运行一个Linux容器。
这仍然是一个想法:在Windows上的虚拟机内运行的Linux。
这不是在Windows服务器上部署的Linux服务器:仅部署在Windows上运行在VM上的Linux服务器内部。


其实…(更新2016年12月)

看“ Linux和Windows,共同生活,总是混乱!(OK,Kubernetes 1.5) ”

Kubernetes 1.5包含对Windows Server Containers(一种类似于Docker的共享内核模型)和Hyper-V Containers(对于多租户环境提供更好的隔离 (以更高的延迟为代价) 的单内核模型)的alpha支持
最终的结果是创build一个Kubernetes集群的能力,该集群不仅包括运行Linux容器的Linux节点或运行Windows容器的Windows节点,而且还包括两个并排的,以实现真正的混合体验。
例如,单个服务可以使用Windows Server Containers和使用Linux容器的其他POD来使用POD

但:

虽然看起来function完整,但在这个早期版本中似乎有一些限制,包括:

  • Kubernetes的主人仍然需要在Linux上运行,因为它依赖于它的写法 。 有可能移植到Windows,但是现在团队觉得把精力集中在客户端组件上会更好。
  • 在Windows中没有本地支持容器的networking覆盖,所以networking仅限于L3 。 (还有其他解决scheme,但它们不是本地可用的。)
    Kubernetes Windows SIG正在与微软合作解决这些问题,他们希望明年年初Kubernetes 1.6的发布取得进展。
  • Windows容器之间的networking更复杂,因为每个容器都有自己的networking名称空间,因此build议您现在使用单容器容器
  • 在Windows Server Containers中运行的应用程序可以使用Windows支持的任何语言运行。 您可以在Linux容器中运行.NET应用程序,但只能在.NET Core中编写。 Nano Server操作系统也支持.NET核心,可以在Windows Server Containers上部署。