【问题标题】:Linux machine with docker deploy windows container带有 docker 部署 windows 容器的 Linux 机器
【发布时间】:2016-01-16 09:16:40
【问题描述】:

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

【问题讨论】:

  • 实际上......这在今天(2016 年 12 月,14 个月后)可能是可能的。请参阅我修改后的答案。

标签: docker window


【解决方案1】:

2019 年更新

正如duct_tape_coderthe comments 中所指出的:

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 隔离包装器,通过由linuxkit 构建的最小 Linux 操作系统来运行 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 容器(类似于 Docker 的共享内核模型)和 Hyper-V 容器(为多租户环境提供更好隔离的单内核模型)的 alpha 支持(以更大的延迟为代价)。
最终结果是能够创建单个 Kubernetes 集群,其中不仅包括运行 Linux 容器的 Linux 节点或运行 Windows 容器的 Windows 节点,而且还包括并排,以获得真正的混合体验。
例如,单个服务可以有使用 Windows Server 容器的 POD 和使用 Linux 容器的其他 POD

但是:

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

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

【讨论】:

  • 我是唯一一个将问题解释为在 Linux 主机 docker 引擎上运行 Windows 容器的人。?
  • @OK9999 不,你不是。这个答案的第一句话确实解决了这个问题:Linux 上没有 Windows 容器这样的东西,这意味着你只有 Linux 容器并且...... Linux 容器不会在其中运行任何 Windows。
  • 这里只是想成为魔鬼的拥护者。第一句话只是说一个 Linux 容器,例如docker run -it /bin/bash 不能部署在 Windows 主机上(安装了 docker 引擎)。你没有告诉我们反之亦然。
  • 我不明白,为什么不能在 windows docker 引擎中运行 linux 容器?他们在 Windows 10 和 Hyper-V 上做得很好(我在 Hyper-V 管理器中看到了 MobyLinuxVM),但在 Windows Server 2016 上却不行,有人知道为什么吗?
  • @Jamby 因为 Windows Server 2016 实现了 Docker for Windows,用于运行 Windows 映像。默认情况下,它没有运行 Linux 机器的 VM,您可以在该机器上使用 docker 运行 Linux 容器。
猜你喜欢
  • 1970-01-01
  • 2022-01-27
  • 2023-03-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-17
相关资源
最近更新 更多