[英]If Docker runs natively on windows, then why does it need hyper-v
[英]docker in windows need Hyper-V enabled?
Docker是否要求在Windows中啟用Hyper-V ? 如果是,為什么?
Hyper-V在這種情況下的作用是什么?
我使用的是Windows 10主頁。 hyper-V安裝Docker的替代方案是什么?
如果您使用windows10 professional並且您的BIOS支持硬件虛擬化,建議您啟用Hyper-V。
當在windows10中運行linux容器時,實際上它仍然需要一個linux系統作為docker主機,因為linux容器不能與windows共享內核。
如果啟用hyper-v, MobyLinuxVm
-windows將自動將hyper-v中的MobyLinuxVm
設置為MobyLinuxVm
主機的虛擬機。 與傳統解決方案相比,我的意思是在virtualbox中安裝linux。 Hyper-v具有更好的性能,因為它不依賴於windows os,它類似於基於硬件的設置,就像vmware-esx一樣。
最后,如果您使用的是家用版本的windows10,則必須安裝一個虛擬機作為docker的主機並使用docker toolbox,詳情請參閱https://docs.docker.com/toolbox/overview/以獲取舊桌面解決方案。
更新您可能想要了解的其他一些要點:
a)linux容器:
Docker容器必須與主機共享內核,Windows上沒有Linux內核,所以在所有情況下,你必須擁有一個帶有linux作為docker主機的虛擬機,如果沒有hyper-v支持,則需要hyper-v或virtualbox。
b)windows容器:
從理論上講,windows容器可以共享windows的內核,因此不需要虛擬機。
但是微軟支持容器與linux相比為時已晚,因此對於不同的主機,它使用不同的解決方案,請參閱下一章來自microsoft網站 :
Windows容器包括兩種不同的容器類型或運行時。
Windows Server Containers - 通過進程和名稱空間隔離技術提供應用程序隔離。 Windows Server Container與容器主機和主機上運行的所有容器共享內核。 這些容器不提供惡意安全邊界,不應用於隔離不受信任的代碼。 由於共享內核空間,這些容器需要相同的內核版本和配置。
Hyper-V隔離 - 通過在高度優化的虛擬機中運行每個容器,擴展Windows Server Containers提供的隔離。 在此配置中,容器主機的內核不與同一主機上的其他容器共享。 這些容器專為惡意多租戶托管而設計,具有與虛擬機相同的安全保證。 由於這些容器不與主機上的主機或其他容器共享內核,因此它們可以運行具有不同版本和配置的內核(在支持的版本中) - 例如,Windows 10上的所有Windows容器都使用Hyper-V隔離來利用Windows Server內核版本和配置。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.