天天看點

阿裡雲Windows Server 2016環境Docker試用

阿裡雲Windows Server 2016環境Docker試用

前文我們介紹過在本地windows10環境中,基于hyper v容器的docker使用。現在阿裡雲已經提供了windows server 2016支援,我們來親自體驗一下原生的windows server容器吧。

系列文章

第二篇 阿裡雲windows server 2016環境docker試用 - 本文

windows server容器與linux容器非常類似,都是通過命名空間、資源控制等技術實作程序隔離。每個windows server容器都與主控端共享同一個核心。與hyperv容器相比,它的啟動速度更快、資源消耗更低。但是hyper v容器可以借助虛拟化技術提供更好的隔離性。

注:由于微軟的基礎作業系統鏡像在大陸下載下傳非常緩慢,建議選擇香港區域做實驗。

首先我們建立一個windows server 2016,請選擇型号iii的規格,并選擇“windows server 2016 資料中心版”作業系統鏡像。由于windows鏡像都比較大,建議擴大系統盤容量。

阿裡雲Windows Server 2016環境Docker試用

因為我希望通過windows remote desktop來通路ecs執行個體,需要在公網入方向開放rdp端口3389。其配置方法如下:

阿裡雲Windows Server 2016環境Docker試用
阿裡雲Windows Server 2016環境Docker試用

注:從安全角度出發,請按需配置需要對外暴露的端口。

阿裡雲Windows Server 2016環境Docker試用

在windows server的powershell中,執行如下指令安裝docker-microsoft的包管理實作

再安裝docker engine安裝包

完成之後,請執行下面指令重新開機伺服器

重新開機完畢,我們就可以通過如下指令檢視 docker engine 的狀态了。

這裡我們可以看到伺服器端作業系統/架構(os/arch)為“windows/amd64”;而容器的“預設隔離方式”(default isolation)為程序 “process”也就是windows server container

注:如果ecs部署在國内region,可以需要配置docker hub加速器。在香港和海外region無需如下配置。

通路 <code>https://cr.console.aliyun.com</code> 獲得加速器位址

阿裡雲Windows Server 2016環境Docker試用

在powershell中執行如下指令

重新開機docker engine

注:微軟的系統鏡像中的層檔案并不儲存在docker hub之上,在國内通路非常痛苦,即使配置了阿裡雲加速器也無法提升傳輸效率。可以通過docker save/load的方式加載作業系統基礎鏡像。

在測試目錄建立如下<code>dockerfile</code>檔案,它會在微軟iis鏡像的基礎上,添加一個"index.html"

建構docker鏡像,并命名為 "myiis"

執行如下指令,啟動

docker run -d -p 80:80 myiis

我們利用浏覽器打開ecs主機的位址,就可以看見我們生成的網頁了。 (注,需要在安全組配置中建立http協定的公網入方向配置)

阿裡雲Windows Server 2016環境Docker試用

docker從1.12版本之後提供了 <code>isolation</code> 參數,可以由使用者選擇不同的隔離機制

比如,在windows環境可以用如下指令分别以 windows server container 和 hyperv 的隔離方式執行 iis

阿裡雲環境中,windows server本身就是運作在虛拟化環境中,是以目前不支援 hyperv 的容器運作時。

由于windows server container和作業系統共享核心是以它隻能運作windows作業系統鏡像,而不能運作linux的鏡像。

在阿裡雲上利用windows server 2016和docker技術可以靈活地傳遞windows應用,對于企業使用者而言有着重要的意義。在之後的文章中,我們會逐漸介紹windows容器的其他特性比如swarm模式叢集支援等。