這篇文章主要講解了“在Windows系統(tǒng)上可以用Docker嗎”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“在Windows系統(tǒng)上可以用Docker嗎”吧!
創(chuàng)新互聯(lián)建站專注于企業(yè)營銷型網(wǎng)站、網(wǎng)站重做改版、通河網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5建站、商城網(wǎng)站制作、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為通河等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。Docker,或者準(zhǔn)確一點(diǎn)說,容器技術(shù),在近幾年里幾乎成為了應(yīng)用分發(fā)和集群部署的默認(rèn)技術(shù)了。Docker 生態(tài)的成熟還有賴于其周邊工具和實(shí)踐模式的興起。比如,曾經(jīng)雨后春筍般出現(xiàn)的編排技術(shù),以及基于容器技術(shù)的 DevOps 實(shí)踐大規(guī)模地開展。
那么這么好的技術(shù),在 Windows 上能用嗎?在各種場(chǎng)合,都有人與我討論這個(gè)的話題。每次聽到這樣的疑問,我也是很無奈的。畢竟,只要稍微搜索一下,就不難回答:是可以的。不過,深入想一下,人們有這樣的疑問也是有道理的:畢竟 Docker 是起源于 Linux 上的技術(shù)。
Docker 是基于 Linux 內(nèi)置的 Namespace 和 CGroup 等系統(tǒng)內(nèi)隔離機(jī)制而抽象出來的一種輕虛擬化技術(shù)。與虛擬機(jī)相比,它以一種輕量級(jí)的方式實(shí)現(xiàn)了運(yùn)行空間的隔離。如果物理機(jī)是一幢住宅樓,虛擬機(jī)就是大樓中的一個(gè)個(gè)套間,而容器技術(shù)就是套間里的一個(gè)個(gè)隔斷。不難理解,Docker 作為一種隔斷,它并不能基于一種內(nèi)核(Linux)提供另一種內(nèi)核(Windows)的虛擬化運(yùn)行環(huán)境。所以,基于 Linux 的 Docker 是不支持運(yùn)行 Windows 應(yīng)用的。
早在 Docker 之前,Linux 就已經(jīng)提供了今天的 Docker 所使用的那些基礎(chǔ)技術(shù)。當(dāng)年 Docker 仿佛一夜之間突然火爆全球的背后,技術(shù)上的積累并不是瞬間完成的。這一切在 Windows 上顯得有些滯后。在 Docker 已經(jīng)眾所周知的時(shí)候,Windows 系統(tǒng)卻根本沒有類似的機(jī)制,更別提 Windows 獨(dú)有的工具鏈和實(shí)踐方法了。所以,我們看到,早期 Windows 與 Docker 的交集只是為其提供應(yīng)用開發(fā)環(huán)境。
boot2docker 與 Docker for Windows
可以在 Windows 開發(fā)面向 Docker 部署的應(yīng)用程序——Windows 的桌面體驗(yàn)比 Linux 好太多,所以很早就出現(xiàn)了在異構(gòu)操作系統(tǒng)上以虛擬機(jī)的形式運(yùn)行 Docker 的項(xiàng)目出現(xiàn),也就是 boot2docker。它既支持 Windows,也支持 macOS。
后來,Docker 公司開始推出自己的 Docker for Windows 工具包,它旨在為開發(fā)人員在 Windows 上開發(fā)面向 Docker 的應(yīng)用程序提供完整的工具鏈,其中包括運(yùn)行環(huán)境、客戶端,Docker Swarm 編排工具和其他工具。Docker for Windows 中負(fù)責(zé)運(yùn)行環(huán)境配置的工具是 Docker Machine。與 boot2docker 類似,Docker Machine 也會(huì)在 Windows 上創(chuàng)建一個(gè) Linux 虛擬機(jī),用于運(yùn)行 Docker 引擎。也就是說,這個(gè)環(huán)境也只支持 Linux 的應(yīng)用程序格式的,并不支持 Windows 應(yīng)用程序的運(yùn)行。
在 Windows 上運(yùn)行的 Docker for Windows(圖片來自 Docker 文檔)
Windows 容器技術(shù)
正當(dāng) Linux 世界的容器技術(shù)借著 Docker 的東風(fēng)刮遍世界的時(shí)候,Windows 系統(tǒng)也發(fā)現(xiàn)了容器粒度的重要性。 微軟與 Docker 在 2014 年宣布了合作,以期將容器技術(shù)帶到 Windows Server 操作系統(tǒng),并為傳統(tǒng)的 Windows 應(yīng)用程序的容器化改造提供更直接的支持。不久之后,微軟在 Ignite 2015 上宣布將推出為容器優(yōu)化的 Windows Nano Server;第一次 Windows 容器真正與與開發(fā)者見面是在 Windows 10 的年度更新(2016.8)上,它正式提供 Windows 容器的開發(fā)環(huán)境。在 2017 年 10 月發(fā)布的 Windows Server 1709 版本包含了 Windows 容器,意味著這項(xiàng)技術(shù)可以用于生產(chǎn)環(huán)境了。Windows 容器是真正能夠運(yùn)行 Windows 應(yīng)用程序的容器技術(shù),包括依賴 IIS、注冊(cè)表等大量 Windows 特性的應(yīng)用程序都可以在 Windows 容器中運(yùn)行。
雖然 Windows 對(duì)容器的支持有些姍姍來遲,但社區(qū)對(duì) Windows 容器的關(guān)注和運(yùn)用卻是異?;钴S。這主要得益于容器技術(shù)本身生態(tài)的成熟,一來人們對(duì)這項(xiàng)技術(shù)已經(jīng)有了充分的認(rèn)知,同時(shí)周邊工具和實(shí)踐都已經(jīng)日趨完善。另一方面,在與 Docker 公司一同打造這項(xiàng)技術(shù)的過程中,也注意了與已有技術(shù)的兼容性。人們發(fā)現(xiàn),在電腦上啟用 Windows Container 功能之后,接下來的操作步驟仍然是基于 Docker 客戶端完成的,命令行參數(shù)與 Linux 上的 Docker 也沒有區(qū)別。
幾乎與 Windows 容器技術(shù)本身日趨成熟過程的同時(shí),周邊工具對(duì) Windows 容器的支持也在同步完善。Docker for Windows 在新的版本中添加了一個(gè)貼心的菜單,可以一鍵切換 Linux 容器和 Windows 容器;Kubernetes 從 1.5 版本開始增加對(duì) Windows 容器的支持;云環(huán)境方面,包括 Azure 和 AWS 在內(nèi)的眾多云環(huán)境都第一時(shí)間提供了 Windows 容器的支持……
切換容器運(yùn)行時(shí)
Windows 容器架構(gòu)
Windows 是如何既提供自有容器技術(shù),又提供與 Docker 兼容的操作接口的呢? 下面的上圖是 Linux 容器的架構(gòu),下圖則是 Windows 容器的??梢园l(fā)現(xiàn)兩者結(jié)構(gòu)很類似。與 Linux 類似,Windows 也新新抽象出來了 CGroup 和 Namespace 的概念,并提供出一個(gè)新的抽象層次 Compute Service,即宿主機(jī)運(yùn)算服務(wù)(Host Compute Service,hcs)。相較于底層可能經(jīng)常重構(gòu)的實(shí)現(xiàn)細(xì)節(jié),hcs 旨在為外部(比如 Docker 引擎)提供較穩(wěn)定的操作接口。hcs 的操作接口目前有 Go 語言版本,以及 C# 語言版本,前者目前在 Docker 客戶端中用來操作 Windows 容器。
圖片來自 Black Belt 在 DockerCon 的演講:Docker 與 Windows 容器揭秘
容器鏡像方面,微軟自己提供了 Server Core 和 Nano Server 兩種服務(wù)器版本。Server Core 可以理解為 Windows Server 去掉了 GUI 的部分,因此功能更完整(比如包括文件服務(wù)器、DNS 服務(wù)器等功能),同時(shí)鏡像大小也更大(2GB~5GB);而 Nono Server 則是專為容器優(yōu)化的迷你型系統(tǒng),只包含有核心的 Windows 服務(wù)器功能,鏡像大小為(130MB~400MB)?;诨A(chǔ)鏡像來構(gòu)建自己鏡像的方法與 Linux 鏡像是一樣的,所以 DockerFile 文件的格式和語法并沒有不同。 授權(quán)方面,只要用戶已經(jīng)取得宿主機(jī)的授權(quán),微軟并不會(huì)單獨(dú)向用戶收取容器鏡像的授權(quán)費(fèi)。
小結(jié)
容器技術(shù)本身以及圍繞它的一系列工具和實(shí)踐讓應(yīng)用程序的打包和發(fā)布變得標(biāo)準(zhǔn)化,很大程度上可以消除應(yīng)用程序?qū)μ囟ōh(huán)境的依賴,進(jìn)而為高效的集群化部署和運(yùn)維提供有力保障。作為容器技術(shù)的代表,Docker 可以以兩種形式運(yùn)行在 Windows 上:以 Hyper-V 虛擬機(jī)的形式運(yùn)行 Linux 格式的容器,或者運(yùn)行原生的 Windows 容器。其中前者運(yùn)行 Linux 格式的應(yīng)用程序,后者能運(yùn)行 Windows 應(yīng)用程序。如果稍微用一點(diǎn)技巧,還可以讓這兩者同時(shí)運(yùn)行在 Windows 電腦上。
Windows 10 和 Windows Server 都提供了對(duì) Windows 容器的支持,各種容器化工具對(duì) Windows 容器的支持也在日趨完善當(dāng)中?;?Windows 開發(fā)新的應(yīng)用時(shí)一方面可以優(yōu)先考慮跨平臺(tái)容器化部署的能力,另一方面也可以與存量應(yīng)用程序一樣考慮借助 Windows 容器技術(shù)實(shí)現(xiàn)容器化、云原生的特性。
感謝各位的閱讀,以上就是“在Windows系統(tǒng)上可以用Docker嗎”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)在Windows系統(tǒng)上可以用Docker嗎這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!
本文標(biāo)題:在Windows系統(tǒng)上可以用Docker嗎-創(chuàng)新互聯(lián)
網(wǎng)站鏈接:http://jinyejixie.com/article34/ccsdpe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃、App開發(fā)、品牌網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、服務(wù)器托管、企業(yè)網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容