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

Cla*_*omo 36 window docker

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

Von*_*onC 38

更新2019年

正如注意到duct_tape_coder评论:

Microsoft 已经改进了容器的网络选项,现在允许每个pod的多个容器具有改进的命名空间.


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

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

您当然可以通过VM在任何Windows计算机上运行这些Linux容器.
这就是docker工具箱将安装的内容.

将有适用于Windows泊坞窗的支持很快,但这是针对Windows的容器,而不是Linux容器.

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


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

请参阅" Linux和Windows,共同生活,完全混乱!(好的,Kubernetes 1.5) "

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

  • 我是唯一一个将问题解释为在 Linux 主机 docker 引擎上运行 Windows 容器的人吗? (2认同)