【问题标题】:What's the difference between Docker for Windows and Docker on Windows?Docker for Windows 和 Docker on Windows 有什么区别?
【发布时间】:2016-11-22 17:08:20
【问题描述】:

Docker on Windows 似乎是 Windows Server 2016 的内置功能?并支持在 Docker 容器内运行 Windows 并将 Windows 用作 Docker 容器主机。这支持Linux吗?我不这么认为,我认为它只支持运行 Windows Docker 容器。这似乎也由 Microsoft 维护。

Docker for Windows 似乎是 Docker 团队为将 Linux Docker 引入 Windows 而创建的单独安装。所以 Windows 可以是 Docker 主机,但所有容器仍然只是普通的 Linux 容器。这是否支持 Windows 容器?我不这么认为,我认为它只支持运行 Linux Docker 容器。这似乎也由 Docker 维护。

另一个有趣的注意事项是,Docker Tools for Visual Studio 似乎只支持 Docker Desktop for Windows,而不支持 Docker on Windows

我真正在寻找的是两者之间的陈述差异,某种很好的比较。每个功能都试图实现哪些功能,它们在哪里相似,它们在哪里不同。他们会永远不同,还是会走到一起?

【问题讨论】:

  • 仅链接的答案通常不受欢迎,我只会评论这篇文章,它很好地概述了 Docker-on-Windows:collabnix.com/…

标签: windows docker docker-desktop docker-for-windows


【解决方案1】:

Docker on Windows 是一种通俗的说法,仅指在 Windows 上运行的 Docker 引擎。我发现将其视为 Windows 容器主机 很有帮助,所以是的仅限 Windows 容器。这将是您在 Windows Server 2016 机器上运行的内容。所以也许一个更好的名字是 Docker for Windows Server 我相信人们也使用过。我仍然更喜欢 Windows 容器主机。这意味着它最终只有 Docker 引擎,甚至不需要任何 Docker 客户端(docker CLI、docker-compose 等)。

Docker Desktop for Windows 是一款旨在在 Windows 上同时运行 Linux 和 Windows 容器的产品。它不适用于生产环境,而是适用于 Windows 的桌面/客户端 SKU,因此需要 Windows 10。因此,您可以将其视为适用于 Windows 10 的 Docker。因为 DfW 可以运行这两种容器类型,所以它在您的机器上设置了不同的配置:

  • 在使用 Linux 容器时,DfW 会创建一个带有 Hyper-V 的 MobyLinuxVM,它在其中透明地运行 Linux 容器,就好像它们在 Windows 10 主机上运行一样。
  • 使用 Windows 容器时,DfW 会在 Windows 上安装与 Docker 相同的组件,以便您拥有 Windows 容器主机。您现在已经安装了 Windows Docker 引擎。然后,这允许您在 Win 10 客户端 SKU 上运行 Windows 容器。

理论上你可以在 Windows Server 上安装 DfW,我没有尝试过,所以我不知道这是否会失败,但你为什么要在生产环境中的 Windows 主机上运行 Linux 容器?在生产中,您将拥有运行 linux 容器的 Linux 容器主机和运行 Windows 容器的 Windows 容器主机,这将避免开销并简化事情。

【讨论】:

【解决方案2】:

除了 Wes 对 Docker for Windows 的回答之外,还有一些关于实验性 LCOW 的详细信息,您正在寻找在 Windows 主机上并行执行 Windows 和 Linux 容器的内容。

目前有两种方法可以使用 Docker for Windows 和 Hyper-V 运行 Linux 容器:

  1. 在完整的 Linux VM 中运行 Linux 容器 - 这就是 Docker
    今天通常会这样做。
  2. 使用 Hyper-V 隔离在 Windows (LCOW) 上运行 Linux 容器 - 这是 Docker for Windows 中的一个新选项。

在第一种方法中,Windows windows 的 Docker 将在 Windows 主机上提供 docker daemon 服务,并且它将在 Linux MOBY VM 上可用。所以基本上,你将有 2 个不同的 docker 主机。一个在您的 Windows 主机上运行,​​仅管理 Windows 容器,另一个在您的 Linux Moby VM 上运行并仅管理 Linux 容器

请务必注意,所有 Linux 容器将在 Moby VM 上共享单个 Linux 内核,所有 Windows 容器将在 Windows 主机上共享单个 Windows 内核。

使用第二种方法真的很有趣,

具有 Hyper-V 隔离的 Linux 容器在经过优化的 Linux 虚拟机中运行每个 Linux 容器,并配备足够的操作系统来运行容器。每个 Linux 容器都有自己的内核和自己的虚拟机沙箱。它们也由 Windows 上的 Docker 直接管理。

这种方法的主要区别在于,只有一个 docker 守护程序服务在 Windows 主机 上运行并同时管理 Windows 和 Linux 容器。

所有 Windows 容器将共享单个 Windows 内核,而每个 Linux 容器将拥有自己的 Linux 内核

更详细的了解,请参考 https://docs.microsoft.com/en-us/virtualization/windowscontainers/deploy-containers/linux-containers

【讨论】:

    猜你喜欢
    • 2016-10-24
    • 2021-05-24
    • 2015-04-08
    • 1970-01-01
    • 1970-01-01
    • 2017-08-31
    • 1970-01-01
    • 2018-10-18
    • 1970-01-01
    相关资源
    最近更新 更多