我们从2011年坚守至今,只想做存粹的技术论坛。  由于网站在外面,点击附件后要很长世间才弹出下载,请耐心等待,勿重复点击不要用Edge和IE浏览器下载,否则提示不安全下载不了

 找回密码
 立即注册
搜索
查看: 760|回复: 1

[最新新闻] Windows容器技術大剖析

[复制链接]

该用户从未签到

1359

主题

487

回帖

127

积分

二级逆天

积分
127

社区居民原创达人忠实会员社区劳模终身成就奖特殊贡献奖原创先锋奖金点子奖

QQ
发表于 2016-10-24 16:55:11 | 显示全部楼层 |阅读模式
微軟和Docker團隊花了2年,仿效Linux上的容器技術底層,終於在Windows Server 2016實作出了Windows容器技術


微軟設計了兩種Windows Container(簡稱Windows容器),一種共用系統核心資源的Windows Server Container(簡稱Windows Server容器),另一種則是有自己獨立系統核心資源的Hyper-V Container(簡稱Hyper-V容器)。(圖片來源/微軟)

786_feng_mian_gu_shi_4_p31-docker-960.png

支援Docker容器技術是新版Windows Server 2016關鍵的新特色之一,也是打破Windows和Linux世界壁壘的其中一項關鍵。在微軟負責Docker技術研發團隊的微軟首席資開發首席John Starks就透露,最大困難是,Docker源自Linux核心的系統層功能,如控制資源的控制群組機制cgroups、命名空間Namespaces,還有實現層級化功能的共通檔案系統AUFS等,這些都是在Windows所沒有的功能。
早在2014年6月,微軟有意將Docker專案複製到Windows環境上時發現,「需要推出新版作業系統才能解決這個問題,這也就成了Windows Server 2016要實現的功能。」John Starks說。
微軟如何實作Windows容器
為了將Docker技術搬到Windows世界,微軟首先在新版Windows 中實現了容器需要的三種系統層機制,控制群組機制(微軟稱為Job objects),命名空間機制(包括了Object Namespace、Process Table和Networking)以及層級能力,來提供作業系統層級的運算服務層(Compute Service),才在Windows上打造出了能與Docker 相容的Container技術。
不只是重現Linux機制,微軟還得兼顧與Windows的相容性,理,例如在命名空間的設計上,微軟除了增加了Silo\來管理Windows系統資源的起點,如\Silos\foo,也將Windows環境下常用的目錄如C:\或C:\Windwos,在Windows容器中,也改由Object namespace來管理,變成了\DosDevices\C:和\DosDevices\C:\Windwos等存取路徑。
或像是在檔案系統的設計上,John Starks解釋,NTFS檔案系統太複雜,很難用NTFS打造一套UnionFS檔案系統,因此,微軟採取混合架構,每一個容器有各自有一份NTFS分區表,搭配虛擬的區塊儲存裝置來建立容器的多層式檔案系統,再利用Symlink機制,將不同層內的檔案對應到Host環境檔案系統的實際檔案上,來減少虛擬區塊儲存裝置所占用的容量。
Windows容器有兩種
微軟設計了兩種Windows Container(簡稱Windows容器),一種共用系統核心資源的Windows Server Container(簡稱Windows Server容器),另一種則是有自己獨立系統核心資源的Hyper-V Container(簡稱Hyper-V容器)。Windows Server容器更像是Linux上的Docker容器,和其他容器共用同一套Host作業系統的核心,而Hyper-V Container則會有一份專用的作業系統核心,而不會共用Host核心。在同一個作業系統環境中,可以同時執行這兩類的Windows容器。
簡單來說,Hyper-V容器就像是一個包在Hyper-V特殊款虛擬機器內的Windows Server容器。Hyper-V容器內有一份獨立的系統Kernel、一個Windows Server容器、Guest運算服務、基礎系統Process。
不過,Hyper-V容器所建立的特殊虛擬機器,並非是真正的Hyper-V虛擬機器,而是一個用精簡版Hyper-V虛擬化技術隔離的環境,像是在Hyper-V分區上執行的一個Windows Server容器。微軟表示,第一個Hyper-V容器啟動約40秒,為了加快Hyper-V容器的啟動速度,微軟還設計了一個複製機制,可以快速複製(Fork)記憶體內第一個Hyper-V容器的特殊VM環境,來加快其他Hyper-V容器的建立速度。
在Windows作業系統內的Docker引擎,可以呼叫這些Windows系統層級的運算服務來執行和管理Windows容器,就如同在Docker引擎在Linux環境中透過containerd和runc服務來管理Linux容器一樣。從載入Docker映象檔來布建應用的流程來看,Docker引擎成了開發者唯一要面對的作業系統環境抽象層,而不用擔心底層容器技術如何運作,幾乎所有的Docker指令都同樣可以在Windows環境下執行,只有少數指令的運作和Linux環境不同,例如不支援FROM scratch指令。


786 封面故事4 (P31-Docker)-600-1.png

類型1:Windows Server容器
微軟設計了兩種容器,第一種稱為Windows Server容器,這很像是Linux上的Docker容器,和其他容器共用同一套Host作業系統的核心。也可以使用Dockerfile來建立描述性的映象檔。(圖片來源/微軟)
786 封面故事4 (P31-Docker)-600-2.png

[blockquote]
類型2:Hyper-V容器
另一種Windows容器稱為Hyper-V容器,像是一個包在Hyper-V特殊型VM內的Windows Server容器,會有一份專屬OS核心,而不與其他容器共用Host核心。和Windwos Server容器一樣支援相同的Dockerfile映象檔。(圖片來源/微軟)[/blockquote]Windows容器的Dockerfile有點不同
Windows容器同樣也可以使用Dockerfile來建立描述性的映象檔,來將Windows基礎架構配置程式化,微軟還推出了支援Docker的PowerShell指令,可用於命令列模式下,搭配Docker指令來管理Windows容器。
幾乎大多數Docker指令可用於Windows環境中,例如要注意反斜線逸出如WORKDIR c:\\Apache24\\bin才有效。另外,可以在Dockerfile檔中用RUN powershell.exe來執行PowerShell指令設定環境配置。這也意味著Linux環境的Dockerfile得費一番功夫調整才能用於Windows環境。
目前,Windows容器的Dockerfile只能使用兩種基礎映象檔(Base image)來建立容器,一個是windowservercore基礎映象檔(檔案超大約6 GB,但相容性高)和nanoserver基礎映象檔(檔案小約5百MB,啟動速度快,簡單API介面),而無法使用Linux類基礎映象檔,如Docker開發者慣用的Ubuntu,來建立Windows容器。使用這兩種基礎映象檔建立的Dockerfile都可用來建立Windows Server容器或Hyper-V容器。

微軟目前正式推出的是Docker on Windows,可以做到在Windows上能跑Docker,包括Window Server 2016和Windows 10都已支援,但微軟下一步想要實現的是Docker for Windows,能夠將Docker技術高度整合到Windows內,做到可以同時在Windows環境內執行任何類型的Docker容器,也就是能同時執行Windows類容器和Linux類容器,如此一來就「可以在Windows上平行執行Windows應用和Linux應用了」。目前,Docker for Windows還處於Beta測試版本,「兩者完成整合的那一天很快就會到來。」John Starks說。
回复

使用道具 举报

  • TA的每日心情
    开心
    2024-8-2 17:14
  • 签到天数: 1 天

    [LV.1]初来乍到

    400

    主题

    4719

    回帖

    9520

    积分

    二级逆天

    积分
    9520

    社区居民社区劳模忠实会员原创达人终身成就奖优秀斑竹奖

    QQ
    发表于 2016-10-25 08:58:04 | 显示全部楼层
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    论坛开启做任务可以
    额外奖励金币快速赚
    积分升级了


    Copyright ©2011-2024 NTpcb.com All Right Reserved.  Powered by Discuz! (NTpcb)

    本站信息均由会员发表,不代表NTpcb立场,如侵犯了您的权利请发帖投诉

    平平安安
    TOP
    快速回复 返回顶部 返回列表