• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      初識DOCKER容器技術(shù)

      2019-08-13 09:09:31金琦
      中國信息技術(shù)教育 2019年14期
      關(guān)鍵詞:應(yīng)用服務(wù)鏡像虛擬化

      金琦

      編者按:在國家教育信息化政策的大力支持下,很多區(qū)域教育技術(shù)中心或?qū)W校都在積極開展或籌建教育云平臺大數(shù)據(jù)發(fā)展工作,教育云平臺和大數(shù)據(jù)建設(shè)已成為未來教育信息化發(fā)展的重要趨勢。但智慧校園發(fā)展遇到諸如學(xué)校運維受限、軟件部署繁瑣、硬件資源浪費、數(shù)據(jù)孤島、使用率低下等困惑,而引入容器技術(shù)作為目前已經(jīng)普遍實施的服務(wù)器虛擬化技術(shù)的有效補充,既能保障主機(jī)的安全、穩(wěn)定和高可用性,又能實現(xiàn)業(yè)務(wù)應(yīng)用的快速靈活部署和輕量高效運行,從而使教育部門可以獲得真正標(biāo)準(zhǔn)化的可持續(xù)更新的流程和數(shù)據(jù)資產(chǎn)。接下來本欄目將分兩期對容器技術(shù)進(jìn)行探討。

      ● 數(shù)據(jù)中心應(yīng)用服務(wù)現(xiàn)狀

      容器技術(shù)在最近幾年都是一個非常熱門的話題,目前越來越多的公司都向?qū)W校提出基于容器技術(shù)的智慧校園解決方案。要探討容器技術(shù),我們避免不了回顧容器技術(shù)產(chǎn)生的背景。

      2010年前我們中小學(xué)數(shù)據(jù)業(yè)務(wù)服務(wù)器架構(gòu)基本上是如圖1所示的模式。

      這種模式下我們面臨以下問題:①部署成本高。我們要準(zhǔn)備相應(yīng)物理服務(wù)器,然后在物理服務(wù)器上安裝Windows或者Linux操作系統(tǒng),安裝各式系統(tǒng)環(huán)境的依賴,再在操作系統(tǒng)中部署學(xué)校各類業(yè)務(wù)應(yīng)用,這樣的部署非常慢,而且成本非常高。②資源浪費嚴(yán)重。對于學(xué)校來說大部分業(yè)務(wù)與系統(tǒng)消耗的資源非常小,為避免應(yīng)用程序自身的安全隱患影響同一服務(wù)器上其他應(yīng)用程序的運行,通常在每一臺服務(wù)器上只運行一種應(yīng)用程序,所以大多數(shù)服務(wù)器的利用率比較低,造成資源的浪費。③更新和擴(kuò)展困難。例如,要更新服務(wù)器,要對相應(yīng)的業(yè)務(wù)應(yīng)用進(jìn)行遷移,除了重復(fù)之前繁冗的部署之外,老的業(yè)務(wù)應(yīng)用未必能適應(yīng)新的硬件架構(gòu)和新的操作系統(tǒng)環(huán)境。又如,要對服務(wù)器進(jìn)行資源擴(kuò)展(閱卷系統(tǒng)有增加閱卷量需求,需要增加內(nèi)存和存儲讀寫效率),這樣又要對物理服務(wù)器的資源去做擴(kuò)展,這也是非常麻煩的。

      隨著技術(shù)的發(fā)展,2010年后各學(xué)校逐漸應(yīng)用虛擬化技術(shù)來解決學(xué)校數(shù)據(jù)中心面對上述傳統(tǒng)物理服務(wù)器應(yīng)用面臨的各式瓶頸(如圖2)。

      首先,我們先了解虛擬化技術(shù)的實現(xiàn)方式。虛擬化技術(shù)就是在原先的物理服務(wù)器上,通過一種運行在基礎(chǔ)物理服務(wù)器和操作系統(tǒng)之間的中間軟件層(Hypervisor)去做物理資源虛擬化,即Hypervisor會加載所有客戶端操作系統(tǒng),同時會分配給每一個客戶機(jī)操作系統(tǒng)適量的物理資源(內(nèi)存、CPU、網(wǎng)絡(luò)、磁盤)。這些被調(diào)度相應(yīng)物理資源的操作系統(tǒng)其實就是我們常說的虛擬機(jī)。一般來說,物理主機(jī)底層的物理資源是比較豐富的,這樣可以通過虛擬化這一層去實現(xiàn)不同虛擬機(jī)之間的資源調(diào)度,如根據(jù)業(yè)務(wù)應(yīng)用實際需要,就可以讓某個業(yè)務(wù)應(yīng)用運行在單獨的一個虛擬機(jī)里面,分配一個低業(yè)務(wù)應(yīng)用虛擬機(jī)使用1核CPU、4G內(nèi)存,然后另外一個相對高業(yè)務(wù)應(yīng)用虛擬機(jī)使用2核CPU、8G內(nèi)存,這樣就可以做物理資源的一個限定和隱形的調(diào)度,從而實現(xiàn)物理資源利用率的最大化。再總結(jié)虛擬化技術(shù)的優(yōu)點:首先是提出資源池的概念,可以把整個物理資源分配到不同的虛擬機(jī)里面,然后去做物理資源的有效管理。

      其次,我們可以很容易進(jìn)行擴(kuò)展,當(dāng)物理資源不夠時,可以去資源池里加物理機(jī),然后在這臺物理機(jī)上再創(chuàng)建虛擬機(jī),因為有了Hypervisor這樣的中間層完成了物理主機(jī)和虛擬機(jī)之間的有效隔離,所以無需關(guān)心底層的物理服務(wù)器到底使用聯(lián)想還是浪潮的,因為通過虛擬化技術(shù),可以在任何的物理設(shè)備上面去創(chuàng)建一臺Windows或者Linux等各式系統(tǒng)的虛擬機(jī)。

      最后一點也是很重要的,就是很容易云化?,F(xiàn)在很多云服務(wù)商(如阿里、騰訊)和省市的教育技術(shù)中心都在做教育公有云,我們可以通過這些大企業(yè)或者教育中心提供的云服務(wù),對底層的物理資源都不用管,直接在云上去創(chuàng)建虛擬機(jī)或者遷移學(xué)?,F(xiàn)有虛擬機(jī),然后去部署或者遷移我們的業(yè)務(wù)應(yīng)用就可以了。

      既然虛擬化技術(shù)這么有效了,為什么還要去講容器技術(shù)?首先我們要看一下虛擬化技術(shù)的局限性:

      (1)每一個虛擬機(jī)都是一個完整的操作系統(tǒng),要給其分配資源,當(dāng)虛擬機(jī)數(shù)量增多時,操作系統(tǒng)本身消耗的資源勢必增多。

      (2)應(yīng)用環(huán)境管理復(fù)雜,維護(hù)效率不高。學(xué)校各種應(yīng)用服務(wù)所需要的部署環(huán)境各異,每次安裝新的應(yīng)用服務(wù)都需要重新安裝新的應(yīng)用部署環(huán)境,無法將應(yīng)用服務(wù)部署環(huán)境和應(yīng)用打包作為一個整體進(jìn)行有效的復(fù)用和管理。

      (3)各項業(yè)務(wù)應(yīng)用運行之后,后期的監(jiān)控和運維也非常復(fù)雜,尤其對學(xué)校來說,大多數(shù)網(wǎng)管教師素質(zhì)一般,與開發(fā)人員也缺乏有效的溝通方式,實際的開發(fā)環(huán)境和學(xué)校的運維環(huán)境有差異,部署和后期更新都會出現(xiàn)矛盾。

      以Docker為代表的容器技術(shù)實現(xiàn)輕量級的操作系統(tǒng)虛擬化解決方案可以對上述傳統(tǒng)虛擬化技術(shù)的局限性進(jìn)行有效改善,使得學(xué)校用戶也可以通過容器技術(shù)克服不同平臺的差異性,享受標(biāo)準(zhǔn)化的交付維護(hù)、對應(yīng)用按需分配的全套體驗。

      ● Docker的概念和基本使用方法

      Docker是基于Go語言實現(xiàn)的云開源項目,是為開發(fā)人員設(shè)計的,以容器調(diào)度和資源分割為單位,通過封裝軟件運行的環(huán)境,用于構(gòu)建、發(fā)布和運行應(yīng)用的平臺。Docker設(shè)計之初的目的是“Build、Ship And Run Any App、Anywhere”,其理念使程序?qū)崿F(xiàn)了“一次封裝,到處運行”。

      Docker特有的容器技術(shù)與前面講的傳統(tǒng)的虛擬化技術(shù)不同,虛擬化技術(shù)都是基于完全虛擬化技術(shù),即由Hypervisor層完整模擬一個“物理主機(jī)”,在生成主機(jī)上制備操作系統(tǒng),在操作系統(tǒng)上安裝并部署相應(yīng)運行庫文件、業(yè)務(wù)應(yīng)用等,這種虛擬化手段的典型代表是VMware ESX、Hyper-V、Citrix、KVM等,相比較于傳統(tǒng)的服務(wù)器虛擬化技術(shù),Docker更為輕量級,它直接省缺了“物理主機(jī)”的模擬,通過各實例共享宿主機(jī)操作系統(tǒng)的方式生產(chǎn)虛擬主機(jī),而在Docker沙盒環(huán)境中是不包含操作系統(tǒng)內(nèi)核的,所以把應(yīng)用運行在Docker容器上面,可以簡化配置,將運行環(huán)境和源代碼及配置文件打包到一個容器里面,實現(xiàn)了本地環(huán)境、開發(fā)環(huán)境、業(yè)務(wù)環(huán)境的統(tǒng)一,降低了開發(fā)測試部署的難度。而且多個容器可以在同一臺機(jī)器上運行,并與其他容器共享操作系統(tǒng)內(nèi)核,每個容器在用戶空間中作為孤立進(jìn)程運行。容器占用的空間少于虛擬機(jī)(容器映像的大小通常為幾十MB),并且?guī)缀趿⒓磫?。而虛擬機(jī)都包含一個操作系統(tǒng)的完整副本,一個或多個應(yīng)用程序,占用數(shù)十GB,虛擬機(jī)相對容器來說啟動緩慢得多。雙方的架構(gòu)對比如下頁圖3所示。

      Docker包括三個基本概念:

      (1)鏡像(Image)。

      Docker鏡像是一個特殊的文件系統(tǒng),可以理解為一個模板,它除了提供容器運行時所需的程序、庫、資源、配置等文件外,還包含了一些為運行時準(zhǔn)備的一些配置參數(shù)(如匿名卷、環(huán)境變量、用戶等)。鏡像不包含任何動態(tài)數(shù)據(jù),其內(nèi)容在構(gòu)建之后也不會被改變。鏡像構(gòu)建時,會逐層構(gòu)建,前一層是后一層的基礎(chǔ)。每一層構(gòu)建完就不會再發(fā)生改變,后一層上的任何改變只發(fā)生在自己這一層。比如,刪除前一層文件的操作,實際不是真的刪除前一層的文件,而是僅在當(dāng)前層標(biāo)記為該文件已刪除。在最終容器運行的時候,雖然不會看到這個文件,但是實際上該文件會一直跟隨鏡像。

      (2)容器(Container)。

      容器就是使用鏡像來啟動常見的應(yīng)用或者系統(tǒng),在當(dāng)前系統(tǒng)上安裝所需的容器即可,而不用去創(chuàng)建新的系統(tǒng)。鏡像(Image)和容器(Container)的關(guān)系,就像是信息技術(shù)教師熟悉的面向?qū)ο蟪绦蛟O(shè)計中的“類”和“實例”一樣,鏡像是靜態(tài)的定義,容器是鏡像運行時的實體。容器可以被創(chuàng)建、啟動、停止、刪除、暫停等。

      (3)倉庫(Repository)。

      倉庫是存放鏡像的地方,包括公開倉庫和私有倉庫兩種形式。一個Docker倉庫中也可以包含多個倉庫,每個倉庫可以包含多個標(biāo)簽(Tag),每個標(biāo)簽對應(yīng)一個鏡像。

      ● Docker的基本使用體驗

      在對Docker有了基本了解后,可以嘗試用實際操作加深體驗,如果想在習(xí)慣的Windows上體驗Docker,可在64位Windows 10(家庭版除外)和Windows 2016上安裝DockerDesktop For Windows,由于Docker本身是Linux軟件,所以最好在Linux系統(tǒng)的主機(jī)或者虛擬機(jī)上直接安裝感受原生的體驗。下面以CentOS 7為例,使用Linux Shell命令搭建一個容器網(wǎng)站服務(wù)來說明。

      (1)使用root權(quán)限登錄CentOs,Docker要求CentOs系統(tǒng)為64位操作系統(tǒng)且內(nèi)核版本需要在3.10及以上,可用“uname -r”命令查看版本,使用“yum update”命令確保yum包更新到最新(如圖4)。

      (2)Yum是一個在Linux中的Shell前端軟件包管理器。基于RPM包管理,能夠從指定的服務(wù)器自動下載RPM包并且安裝,可以自動處理依賴性關(guān)系,并且一次安裝所有依賴的軟件包,無須煩瑣地一次次下載、安裝。安裝需要的軟件包。yum-util提供yum-config-manager功能,另外兩個是devicemapper驅(qū)動依賴的:yum install -y yum-utils device-mapper-persistent-data lvm2(如圖5)。

      (3)用“yum-config-manager --add-repo”指令加上相應(yīng)地址來設(shè)置Yum源(如下頁圖6)。

      (4)用“yum install docker-ce”指令安裝Docker,由于repo中默認(rèn)只開啟stable倉庫,故這里安裝的是最新穩(wěn)定版(如下頁圖7)。

      (5)用“systemctl start docker”指令來啟動Docker。也可以用“systemctl enable docker”指令把Docker加入開機(jī)啟動就啟動(如圖8)。

      (6)Docker啟動后,首先用“docker pull”指令來拉取一個名為busybox(一個集成了一百多個最常用Linux命令和工具的軟件工具箱)的鏡像文件,拉取完成后用“Docker images”命令查看下載到本地的所有鏡像(如圖9)。

      (7)使用“docker run”命令將前面拉取的“busybox”鏡像文件去啟動一個容器(Container),并指定一個容器名稱為“ITEdu”。運行后會直接進(jìn)入這個容器里面,可以發(fā)現(xiàn)該容器內(nèi)環(huán)境和一個正常使用的Linux的環(huán)境完全相同,首先創(chuàng)建一個簡單的網(wǎng)站目錄“data/www”,并在該目錄下用tee命令寫一個簡單文本網(wǎng)頁(如圖10)。

      (8)這個鏡像里自帶了httpd服務(wù)(Apache HTTP服務(wù)器程序,直接執(zhí)行程序可啟動WEB網(wǎng)站服務(wù)器),我們來啟動“httpd-h/data/www”命令,將“data/www”下的網(wǎng)站啟動,查看一下容器的IP地址172.17.0.2,并在宿主機(jī)用瀏覽器訪問該地址,可以看到該網(wǎng)站已經(jīng)可以成功訪問該測試網(wǎng)站(如圖11)。

      通過以上幾條命令,就可成功搭建一個容器內(nèi)網(wǎng)站,感覺是不是很方便。最后,還可以實際體驗下一家校園軟件開發(fā)公司的容器操作范例(如上頁圖12):

      (1)我們可以在學(xué)校或者云服務(wù)器上直接到該公司在阿里云的倉庫拉?。╬ull)一所學(xué)校數(shù)據(jù)中心范例鏡像,執(zhí)行以下命令即可實現(xiàn)。

      docker pull registry.cn-shanghai.aliyuncs.com/xy-docker-hub-test/data-center:dev

      (2)然后再執(zhí)行運行容器指令。

      docker run -d --restart always --name data-center -p 9000:9000 registry.cn-shanghai.aliyuncs.com/xy-docker-hub-test/data-center:dev

      命令解釋如下:“registry.cn-shanghai.aliyuncs.com/xy-docker-hub-test/data-center:dev”是該公司學(xué)校數(shù)據(jù)中心范例鏡像的一個標(biāo)識,我們用該鏡像生成一個名為“data-center”的容器,“-d-restart always”表示讓該容器每次開機(jī)就后臺啟動,“-p -p 9000:9000”就是映射該服務(wù)器的9000端口到容器的9000端口。

      這樣通過拉取鏡像和運行容器兩條指令,就可以將該容器網(wǎng)站服務(wù)直接映射數(shù)據(jù)中心宿主服務(wù)器9000端口上,通過http://服務(wù)器IP:9000/訪問該容器網(wǎng)站。

      至此,學(xué)校的一個新的需求就完成了。開發(fā)人員僅需開發(fā)對應(yīng)的代碼,然后進(jìn)行發(fā)布。后續(xù)的一系列流程,全部自動化實現(xiàn),大大減少了研發(fā)流程,提高了研發(fā)效率,節(jié)省了大量的人力和物力。在學(xué)校信息化不斷深入的過程中,校園各種應(yīng)用服務(wù)急劇增加,學(xué)校數(shù)據(jù)中心急需一種管理維護(hù)便捷、占用資源少、運行效率高的應(yīng)用服務(wù)部署和遷移解決方案,采用基于Docker容器技術(shù)的校園應(yīng)用服務(wù)開源PAAS能滿足以上需求,為學(xué)校的教學(xué)和管理應(yīng)用服務(wù)提供一個高可靠、低成本的高效便捷的應(yīng)用方式。

      猜你喜歡
      應(yīng)用服務(wù)鏡像虛擬化
      全球衛(wèi)星互聯(lián)網(wǎng)應(yīng)用服務(wù)及我國的發(fā)展策略
      鏡像
      基于OpenStack虛擬化網(wǎng)絡(luò)管理平臺的設(shè)計與實現(xiàn)
      電子制作(2019年10期)2019-06-17 11:45:10
      國家不動產(chǎn)統(tǒng)一登記信息平臺構(gòu)建與應(yīng)用服務(wù)
      鏡像
      小康(2018年23期)2018-08-23 06:18:52
      對基于Docker的虛擬化技術(shù)的幾點探討
      電子制作(2018年14期)2018-08-21 01:38:20
      虛擬化技術(shù)在計算機(jī)技術(shù)創(chuàng)造中的應(yīng)用
      電子測試(2017年11期)2017-12-15 08:57:56
      存儲虛擬化還有優(yōu)勢嗎?
      全國征集衛(wèi)星應(yīng)用服務(wù)解決方案
      太空探索(2015年5期)2015-07-12 12:52:36
      鏡像
      小康(2015年4期)2015-03-31 14:57:40
      伽师县| 伊宁市| 元阳县| 石台县| 仙游县| 承德市| 青龙| 金昌市| 留坝县| 大同县| 林口县| 绩溪县| 乌苏市| 浮梁县| 铁力市| 紫阳县| 新龙县| 正阳县| 崇明县| 嫩江县| 河北区| 宜川县| 三明市| 沙坪坝区| 临邑县| 靖宇县| 连南| 黔江区| 巴马| 盱眙县| 同德县| 亳州市| 泾阳县| 确山县| 体育| 宜黄县| 临沧市| 张家口市| 湛江市| 景宁| 建瓯市|