为什么Docker有两种类型Docker Engine

时间:2018-04-16 11:08:40

标签: java docker jvm containers virtual-machine

根据Docker理论,通过在其间放置“Docker Engine”(在下图中用蓝色标记该层),有助于使应用层与平台无关。

enter image description here

这似乎与JVM概念非常相似。它有助于使Java,平台无关的语言。

问题 -

  1. 为什么Docker有两种类型的引擎(Linux和Windows引擎)呢?
  2. 我的理解 -

    1. 这样,它违反了“平台无关”的基本概念。
    2. 你能帮我清楚一下吗?

1 个答案:

答案 0 :(得分:2)

平台独立性是包装应用程序而不是引擎本身的容器。

Docker的整个想法是将应用程序与其依赖关系包装起来,以便可以在安装了Docker的任何机器上部署它。

Docker最初只针对Linux发行版。然后将其扩展为允许用户在Windows / MAC上运行容器。这是通过在Windows / MAC上安装Docker时在后台部署迷你Linux VM来实现的。然后Docker引擎将在这个Linux VM中运行,所有容器也将在那里运行。

原因是容器需要OS内核级别的支持,最初只有Linux才有这种支持。然后大公司开始意识到社区的优势和对Docker的巨大兴趣。因此,Windows决定进行必要的操作系统开发,以便在Windows 10上本机运行Docker引擎。

简而言之,平台独立性来自应用程序容器的角度。在Linux上运行的Docker容器也可以在Windows上运行而无需任何更改。这与特定于操作系统的JVM非常相似,但是相同的Java应用程序可以在安装JVM的任何地方运行。