2017-09-11 111 views
1

我知道这个问题(Can Windows Containers be hosted on linux?),但它并没有真正回答我的问题。Linux应用程序可以在使用Docker的Windows上运行吗?

我是Docker的新手,但我的问题是这样的 - 如果我将任何Windows应用程序放到Docker容器中,它现在可以在Linux上运行,反之亦然?

Confluent声称它只能在linux上运行,但我的同事使用Docker在Windows上安装它。所以如果你可以用Docker进行安装,那么整个应用肯定会被视为跨平台的?

我想我在这里错过了一些重要的观点。

回答

4

Docker不是一个虚拟机,它是一种在共享内核上运行应用程序以隔离这些应用程序的方式。 Windows二进制文件不能在Linux内核上运行,反之亦然(暂时忽略Windows的Linux运行时)。因此,如果您使用Windows应用程序构建容器,则只有在Dockers Windows运行时和Windows基本映像上这样做时才会运行该容器。它不会在Linux主机上运行。

Docker提供的是一个运行Linux的嵌入式VM(最初是VirtualBox,但最新版本是HyperV)。通过运行Docker for Windows,默认情况下,使用这个虚拟机,你只会运行Linux容器,所以你的Windows应用程序甚至不会在容器内运行。要运行Windows二进制文件,您需要切换Docker for Windows以使用Windows运行时,并且目前这是一个切换,您不能在同一主机上同时运行Linux和Windows运行时。

也没有Windows VM与Docker的Linux安装打包在一起。如果需要Windows支持,您需要在Linux主机上的虚拟机内部安装自己的Windows副本(并获得许可证,这是Docker不提供此功能的原因),并在该虚拟机内运行容器。

+0

所以我在下面更正了:Docker基本上运行Linux VM,并且您在Docker上运行的所有内容都必须是Linux容器,除非您将Docker切换为运行Windows VM,然后可以在其中运行Windows容器?是否有在Linux上运行的Windows VM Docker? – eddyP23

+0

@ eddyP23您正在遵循正确的,docker不提供适用于Linux环境的Windows VM。 – BMitch

相关问题