共用系統核心資源 玩轉Windows Server容器

採用微軟開發的Windows容器技術,就能夠以Windows Server容器提供類似Linux的容器環境。若同時結合Docker容器管理技術,則可減輕資料中心維運人員的管理負擔。本文將介紹Windows容器技術,並進行實作示範。

Windows容器類型介紹

在Windows容器環境中,包含兩種不同的容器類型或稱「執行階段」(Runtimes),如圖3所示,分別是「Windows Server容器」(Windows Server Container)以及「Hyper-V容器」(Hyper-V Container):


▲圖3 Windows Server容器與Hyper-V容器運作架構示意圖。(圖片來源:TechNet Wiki - Windows Containers vs. Hyper-V Containers in Windows Server 2016)

‧ Windows Server容器:透過程序和命名空間隔離技術提供應用程式隔離功能,讓運作於Windows Server容器環境內的容器能夠共用系統核心資源,這樣的運作方式與Linux容器環境類似。

‧ Hyper-V容器:享有獨立系統核心資源,採用經過最佳化程序的VM虛擬主機執行容器環境,有效擴充原有Windows Server容器所提供的隔離環境。值得注意的是,執行Hyper-V容器的VM虛擬主機並非傳統的Hyper-V VM虛擬主機,而是運作Windows Server容器的特殊VM虛擬主機,並且具備獨立的系統核心、Guest運算服務、基礎系統執行程序等等。

Windows容器運作環境需求

在Windows容器環境需求方面,採用Windows Server 2016雲端作業系統建立Windows容器環境時,不管採用的是GUI圖形介面版本、Server Core文字介面版本,甚至是最精簡的Nano Server版本,都同時支援「Windows Server容器和Hyper-V容器」。

但是,倘若採用Windows 10桌面端作業系統欲建立Windows容器環境時,並不支援建立Windows Server容器運作環境,而是僅支援建立「Hyper-V容器」運作環境,並且只有採用Windows 10專業版和企業版,以及安裝和啟用Hyper-V角色才有提供建立Hyper-V容器運作環境。

此外,在Windows容器運作環境中具備兩種容器映像檔:Windows Server Core和Nano Server容器映像檔,然而並非所有作業系統版本都同時支援運作這兩種容器映像檔。在表1中,分別條列作業系統版本支援的Windows容器類型以及容器映像檔。

表1 各個作業系統所支援的Windows容器類型與映像檔

值得注意的是,倘若管理人員希望在Hyper-V虛擬化平台中的VM虛擬主機,能夠同時運作Windows Server容器環境及Hyper-V容器環境,因為先前已經說明Hyper-V容器環境是運作特殊的VM虛擬主機,所以上層的這台VM虛擬主機必須啟用「巢狀式虛擬化」(Nested Virtualization)功能才行。

簡單來說,管理人員必須確保Hyper-V虛擬化平台符合運作巢狀式虛擬化機制,以便將「虛擬化擴充功能」(Virtualization Extensions)也就是底層硬體輔助虛擬化技術,傳遞給Hyper-V虛擬化平台上運作的VM虛擬主機當中的客體作業系統,達成VM虛擬主機中再生出VM虛擬主機的巢狀式虛擬化運作架構,如圖4所示。


▲圖4 Hyper-V虛擬化平台巢狀式虛擬化運作架構示意圖。(圖片來源:Virtualization Blog - Windows Insider Preview: Nested Virtualization)


實戰架設Windows Server容器環境

說明過容器的類型與運作環境需求之後,就來實際動手打造Windows Server容器環境。

下載及安裝Docker運作環境

首先,透過OneGet Provider機制,安裝PowerShell的Docker模組,以便稍後Windows Server能夠運作Docker運作環境。

開啟PowerShell命令視窗,並鍵入「Install-Module -Name DockerMsftProvider -Repository PSGallery -Force」指令,系統便會自動由PowerShell Gallery中下載及安裝Docker-Microsoft PackageManagement。

執行下載及安裝指令後,當PowerShell視窗出現「需要NuGet提供者才能繼續」的詢問訊息時,按下〔Y〕鍵以便繼續安裝程序。


接著,執行「Install-Package -Name docker -ProviderName DockerMsftProvider -Force」指令,使用PackageManagement中的PowreShell模組安裝最新版本的Docker運作環境,如圖5所示。


▲圖5 為Windows Server安裝Docker運作環境。

當安裝程序完成後,系統會提示應該要重新啟動主機,以便Windows Server內的Docker運作環境能夠套用生效,所以執行「Restart-Computer -Force」指令重新啟動Windows Server主機。


▲ 圖6 負責Docker運作環境中容器的虛擬網路。


追蹤我們Featrue us

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!