一尘不染

带有docker deploy Windows容器的Linux机器

docker

我有一台安装了docker host的Linux服务器,内存为16GB。我想在其上部署Windows Server容器。可能吗?有人尝试过此解决方案吗?


阅读 386

收藏
2020-06-17

共1个答案

一尘不染

更新2019

如pipe_tape_coder在评论中指出的:

Microsoft 改进了容器的网络选项,现在
允许每个容器中具有改进名称空间的多个容器


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

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

您当然可以通过VM在任何Windows机器上运行这些Linux容器。
那就是docker toolbox将要安装的东西

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

2017年更新:是的,LinuxKit允许通过基于
linuxkit

的最小Linux操作系统,通过Windows平台上的Hyper-V隔离包装程序运行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容器的POD和使用Linux容器的其他POD

但:

尽管它似乎功能齐全,但在此早期版本中确实存在一些限制,包括:

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

2020-06-17