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

bgtovc5b  于 2023-11-21  发布在  Windows
关注(0)|答案(1)|浏览(205)

我有一个Linux服务器,16 GB内存,安装了Docker主机。我想在上面部署一个Windows Server容器。这是可能的吗?有人刚刚尝试过这个解决方案吗?

tktrz96b

tktrz96b1#

更新2019

正如duct_tape_coder在评论中指出的那样:
Microsoft has improved the network options for containers和现在允许每个pod多个容器,并改进了命名空间

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

在Linux主机上没有运行“Windows容器”。
而且Linux容器不会 * 直接 * 在Windows服务器上运行,因为it relies on system calls to a Linux kernel
您当然可以通过VM在任何Windows机器上运行这些Linux容器。
这就是docker toolbox will install
将有support for docker on Windows soon,但这将是Windows容器,而不是Linux容器。
Update 2017:是的,LinuxKit允许在Windows平台上通过Hyper-V隔离 Package 器运行Linux容器,通过从linuxkit构建的最小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 Containers的POD和使用Linux containers的其他POD

但是:
虽然它看起来功能齐全,但在这个早期版本中似乎确实存在一些限制,包括:

*Kubernetes master仍然必须在Linux上运行,因为它的编写方式存在依赖性。可以移植到Windows,但目前团队认为最好将精力集中在客户端组件上。
*Windows中没有原生的容器网络覆盖支持,因此网络仅限于L3。(还有其他解决方案,但它们不是原生可用的。)

然而,Kubernetes Windows SIG正在与微软合作解决这些问题,他们希望在明年初Kubernetes 1.6发布之前取得进展。

  • Windows容器之间的联网比较复杂,因为每个容器都有自己的网络命名空间,所以建议您暂时使用单容器pod
  • 在Windows Server Containers中运行的应用程序可以以Windows支持的任何语言运行。您可以在Linux容器中运行.NET应用程序,但前提是它们是用.NET Core编写的。Nano Server操作系统也支持.NET Core,可以在Windows Server Containers上部署。
展开查看全部

相关问题