Docker - Windows 7上实际运行的是哪个环境?

时间:2017-11-14 09:19:25

标签: linux windows docker environment

我是码头工人的新手,开始了解它,但我有点困惑。

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

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

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

那么,在这种状态下,我实际上会创建一个带有Windows环境或Linux环境的容器吗?

Windows 10的Docker是否也使用Linux?

由于

2 个答案:

答案 0 :(得分:2)

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

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

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

无论如何,你真的不需要这个,因为Windows应用程序仍然会在linux上的Windows主机和linux应用程序上运行。

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

答案 1 :(得分:0)

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

  • windows container上的linux
  • linux container上的windows

不使用某种虚拟化,它将提供每种情况所需的图层。例如,用于Windows的Docker工具箱使用Oracle VM VirtualBox,以便运行Linux容器。

有关Windows containers的更多信息:

  

Windows容器类型

     

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

     

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

     

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

     

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

进一步阅读: