带有docker的Linux机器部署windows容器

时间:2015-10-17 19:03:10

标签: docker window

我有一台装有16GB RAM的Linux服务器,并安装了docker主机。我想在其上部署一个Windows Server容器。可能吗?有人刚试过这个解决方案吗?

1 个答案:

答案 0 :(得分:37)

更新2019

正如duct_tape_coder中的the comments所述:

  

Microsoft has improved the network options for containers现在允许每个pod的多个容器具有改进的命名空间

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

没有" Windows容器"在Linux主机上运行 而且,由于it relies on system calls to a Linux kernel,Linux容器不能直接在Windows服务器上运行

您当然可以通过VM在任何Windows计算机上运行这些Linux容器 这就是docker toolbox will install

将有support for docker on Windows soon,但这将是Windows容器,而不是Linux容器。

Update 2017:是的,LinuxKit允许通过从linuxkit构建的最小Linux操作系统,在Windows平台上通过Hyper-V隔离包装器运行Linux容器。 这仍然是同一个想法:Linux在Windows上的VM内运行 这不是部署在Windows服务器上的Linux服务器:仅部署在Windows上的VM中运行的Linux服务器中。

实际上......(2016年12月更新)

请参阅" Linux and Windows, living together, total chaos! (OK, Kubernetes 1.5)"

  

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

可是:

  

虽然看起来功能齐全,但在此早期版本中似乎存在一些限制,包括:

     
      
  • Kubernetes master仍然必须在Linux上运行,因为它依赖于它的编写方式。可以移植到Windows,但目前团队认为最好将精力集中在客户端组件上。
  •   
  • Windows中的容器的网络叠加层没有本机支持,因此网络仅限于L3 。 (还有其他解决方案,但它们本身不可用。)
      然而,Kubernetes Windows SIG正在与微软合作解决这些问题,他们希望明年初Kubernetes 1.6的发布取得进展。
  •   
  • Windows容器之间的联网更复杂,因为每个容器都有自己的网络命名空间,所以建议您现在使用单容器容器
  •   
  • 在Windows Server Containers中运行的应用程序可以使用Windows支持的任何语言运行。您可以在Linux容器中运行.NET应用程序,但前提是它们是用.NET Core编写的。 Nano Server操作系统也支持.NET核心,可以部署在Windows Server Containers上。
  •