【问题标题】:Docker - Which environment is actually running on Windows 7? [closed]Docker - Windows 7 上实际运行的是哪个环境? [关闭]
【发布时间】:2017-11-14 09:19:24
【问题描述】:

我是 docker 新手,开始了解它,但我有点困惑。

我需要在 windows 环境下运行应用程序。

我有 Windows 7 - 原生 Docker 仅适用于 Windows 10,因此我需要下载适用于 Windows 7 的 Docker 工具箱。

该工具箱实际上是使用 Linux VM 来运行它。

那么,在这种状态下我真的会创建一个windows环境还是linux环境的容器呢?

Windows 10 的 Docker 是否也使用 Linux?

谢谢

【问题讨论】:

标签: linux windows docker environment


【解决方案1】:

有点回答你的问题:Windows 7 使用 linux 运行 docker,因为它需要某些内核功能,而 W7 没有。

Windows 10 或 Windows Server 2016 适应了整个容器化运动并包含了这些功能,因此可以直接从中运行 Windows 容器。

tgogos 引用的问题也是,Windows 容器无法在 linux 主机上运行,​​反之亦然,这是一个可以通过在 windows 主机上使用额外的 linux VM 来解决的问题(afaik),因此您拥有两种环境。我个人不会推荐它,但我认为这是可能的。

无论如何,您实际上并不需要它,因为 Windows 应用程序仍将在 Windows 主机上运行,​​而 linux 应用程序仍将在 linux 上运行。

容器主要是一种更高效、更易于管理的应用程序部署方式。

【讨论】:

    【解决方案2】:

    容器不是虚拟机,它们依赖于主机操作系统,这意味着你不能直接运行:

    • windows container linux
    • linux container windows

    不使用某种虚拟化来提供每种情况所需的层。例如,适用于 Windows 的 Docker 工具箱利用 Oracle VM VirtualBox 来运行 linux 容器。


    更多关于Windows containers:

    Windows 容器类型

    Windows 容器包括两种不同的容器类型或运行时。

    Windows Server 容器 – 通过进程和命名空间隔离技术提供应用程序隔离。 Windows Server 容器与容器主机和主机上运行的所有容器共享一个内核。这些容器不提供恶意的安全边界,不应用于隔离不受信任的代码。由于共享内核空间,这些容器需要相同的内核版本和配置。

    Hyper-V 隔离 – 通过在高度优化的虚拟机中运行每个容器来扩展 Windows Server 容器提供的隔离。在此配置中,容器主机的内核不与同一主机上的其他容器共享。这些容器专为具有与虚拟机相同的安全保证的恶意多租户托管而设计。由于这些容器不与主机或主机上的其他容器共享内核,因此它们可以运行具有不同版本和配置的内核(在受支持的版本中)——例如,Windows 10 上的所有 Windows 容器都使用 Hyper-V 隔离来利用Windows Server 内核版本和配置。

    在带有或不带有 Hyper-V 隔离的 Windows 上运行容器是一个运行时决定。您可以选择最初创建具有 Hyper-V 隔离的容器,然后在运行时选择将其作为 Windows Server 容器运行。

    进一步阅读:

    【讨论】:

      猜你喜欢
      • 2012-04-18
      • 1970-01-01
      • 2022-10-20
      • 2012-07-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-25
      • 1970-01-01
      相关资源
      最近更新 更多