Docker 使用 Windows 容器而不是 Linux 容器的优缺点?

Dun*_*nes 54 docker windows-10

我正在 Windows 10 上安装 Docker for Windows (CE),第一个屏幕问我:

[ ] 使用 Windows 容器而不是 Linux 容器(这可以在安装后更改)

这似乎是一个重要的决定,但Docker 文档常见问题解答Windows 容器教程没有提供有关为什么我可能会选择其中一个的信息。

对这种选择的后果有一个客观的概述会很有帮助:

  • 一种选择会比另一种更快吗?
  • 该决定是否影响系统资源(RAM、CPU)的使用?
  • 我可以在两种类型上运行相同的图像吗?
  • 一个比另一个更安全吗?

任何可能帮助我得出结论的其他区别将非常受欢迎。

Sum*_*min 26

对于 Windows 容器,您必须使用 Windows 主机,但是对于 Linux 容器,您可以使用 Linux 主机或 Windows 主机。自 2018 年 4 月起,您甚至可以并行运行两者

一种选择会比另一种更快吗?

不。在什么地方更快?

该决定是否影响系统资源(RAM、CPU)的使用?

Windows 使用的资源比 Linux 多——Windows Nano 尽可能小

我可以在两种类型上运行相同的图像吗?

不,您可以在单声道容器中运行 .NET 应用程序,但不能在 Linux 主机上启动 Windows 容器,反之亦然——这与虚拟化不同

一个比另一个更安全吗?

再次 - 更安全的是什么?不。它们都运行本地 Docker,所以它不像 hyper-v 与 VMware,更像是 Linux 与 Windows,所以这完全取决于您将要运行的 .net、python、java、ruby 等。

  • 因此,如果我选择使用 Linux 容器,Docker 将启动 Hyper-V Linux VM 来运行我的容器,否则它会在本地运行 Windows 容器?我不能同时运行两种类型的容器? (4认同)
  • 其次这个。阅读补充此答案 https://containerjournal.com/2016/10/28/linux-vs-windows-containers-whats-difference/ (3认同)
  • @DuncanJones,就在您询问后 3 天就有 [博客文章](https://blogs.msdn.microsoft.com/premier_developer/2018/04/20/running-docker-windows-and-linux-containers-simultaneously /) 在 MSDN 上解释说您现在可以并行运行 Windows 和 Linux 容器。 (2认同)