根据 Docker 理论,通过将“Docker 引擎”置于中间(该层在下图中以蓝色标记),有助于使应用程序层、平台独立。
这看起来与 JVM 概念非常相似。它有助于使 Java 成为独立于平台的语言。
问题 -
- 为什么 Docker 有两种类型的引擎(Linux 和 Windows 引擎)?
我的理解-
- 这样一来,就违背了“平台无关”的基本理念。
你能帮我澄清我对此的理解吗?
最佳答案
平台独立性是针对包装应用程序的容器,而不是针对引擎本身。
Docker 的整体思想是将应用程序及其依赖项包装起来,以便可以将其部署在任何安装了 Docker 的机器上。
Docker 最初仅适用于 Linux 发行版。然后它被扩展为允许用户在 Windows/MAC 上运行容器。这是通过在 Windows/MAC 上安装 Docker 时在后台部署迷你 Linux VM 来实现的。然后,Docker 引擎将在此 Linux VM 中运行,所有容器也将在那里运行。
原因是容器需要操作系统内核级别的支持,而最初只有 Linux 有此支持。然后大公司开始意识到 Docker 的优势以及社区对 Docker 的巨大兴趣。因此,Windows 决定进行必要的操作系统开发,以便在 Windows 10 上本地运行 Docker 引擎。
简单来说,平台独立性是从应用容器的角度来看的。在 Linux 上运行的 Docker 容器也可以在 Windows 上运行,无需任何更改。这与特定于操作系统的 JVM 非常相似,但是相同的 java 应用程序可以在安装了 JVM 的任何地方运行。
关于java - 为什么Docker有两种类型的Docker Engine,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49855834/