2017-09-11 152 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

相關問題