999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

初識(shí)DOCKER容器技術(shù)

2019-08-13 09:09:31金琦
中國(guó)信息技術(shù)教育 2019年14期
關(guān)鍵詞:物理資源學(xué)校

金琦

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

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

容器技術(shù)在最近幾年都是一個(gè)非常熱門的話題,目前越來越多的公司都向?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)用,這樣的部署非常慢,而且成本非常高。②資源浪費(fèi)嚴(yán)重。對(duì)于學(xué)校來說大部分業(yè)務(wù)與系統(tǒng)消耗的資源非常小,為避免應(yīng)用程序自身的安全隱患影響同一服務(wù)器上其他應(yīng)用程序的運(yùn)行,通常在每一臺(tái)服務(wù)器上只運(yùn)行一種應(yīng)用程序,所以大多數(shù)服務(wù)器的利用率比較低,造成資源的浪費(fèi)。③更新和擴(kuò)展困難。例如,要更新服務(wù)器,要對(duì)相應(yīng)的業(yè)務(wù)應(yīng)用進(jìn)行遷移,除了重復(fù)之前繁冗的部署之外,老的業(yè)務(wù)應(yīng)用未必能適應(yīng)新的硬件架構(gòu)和新的操作系統(tǒng)環(huán)境。又如,要對(duì)服務(wù)器進(jìn)行資源擴(kuò)展(閱卷系統(tǒng)有增加閱卷量需求,需要增加內(nèi)存和存儲(chǔ)讀寫效率),這樣又要對(duì)物理服務(wù)器的資源去做擴(kuò)展,這也是非常麻煩的。

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

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

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

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

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

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

(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)用打包作為一個(gè)整體進(jìn)行有效的復(fù)用和管理。

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

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

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

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

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

Docker包括三個(gè)基本概念:

(1)鏡像(Image)。

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

(2)容器(Container)。

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

(3)倉(cāng)庫(kù)(Repository)。

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

● Docker的基本使用體驗(yàn)

在對(duì)Docker有了基本了解后,可以嘗試用實(shí)際操作加深體驗(yàn),如果想在習(xí)慣的Windows上體驗(yàn)Docker,可在64位Windows 10(家庭版除外)和Windows 2016上安裝DockerDesktop For Windows,由于Docker本身是Linux軟件,所以最好在Linux系統(tǒng)的主機(jī)或者虛擬機(jī)上直接安裝感受原生的體驗(yàn)。下面以CentOS 7為例,使用Linux Shell命令搭建一個(gè)容器網(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是一個(gè)在Linux中的Shell前端軟件包管理器。基于RPM包管理,能夠從指定的服務(wù)器自動(dòng)下載RPM包并且安裝,可以自動(dòng)處理依賴性關(guān)系,并且一次安裝所有依賴的軟件包,無須煩瑣地一次次下載、安裝。安裝需要的軟件包。yum-util提供yum-config-manager功能,另外兩個(gè)是devicemapper驅(qū)動(dòng)依賴的:yum install -y yum-utils device-mapper-persistent-data lvm2(如圖5)。

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

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

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

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

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

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

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

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

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

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

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ù)中心范例鏡像的一個(gè)標(biāo)識(shí),我們用該鏡像生成一個(gè)名為“data-center”的容器,“-d-restart always”表示讓該容器每次開機(jī)就后臺(tái)啟動(dòng),“-p -p 9000:9000”就是映射該服務(wù)器的9000端口到容器的9000端口。

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

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

猜你喜歡
物理資源學(xué)校
只因是物理
井岡教育(2022年2期)2022-10-14 03:11:44
基礎(chǔ)教育資源展示
一樣的資源,不一樣的收獲
處處留心皆物理
資源回收
資源再生 歡迎訂閱
資源再生(2017年3期)2017-06-01 12:20:59
三腳插頭上的物理知識(shí)
學(xué)校推介
留學(xué)生(2016年6期)2016-07-25 17:55:29
我不是教物理的
中學(xué)生(2015年2期)2015-03-01 03:43:33
奇妙學(xué)校
主站蜘蛛池模板: 亚洲AV无码久久天堂| 欧美高清视频一区二区三区| 99久久精品国产精品亚洲| 婷婷亚洲视频| 国产91熟女高潮一区二区| 狠狠综合久久| 黄色a一级视频| 免费无码又爽又黄又刺激网站 | www亚洲天堂| 波多野结衣AV无码久久一区| 午夜视频在线观看免费网站| 精品福利视频网| 国产成人精品高清在线| 亚洲国产中文欧美在线人成大黄瓜| 亚洲精品第一页不卡| 免费看美女自慰的网站| 一区二区三区四区日韩| 欧美a√在线| 秘书高跟黑色丝袜国产91在线| 99热这里只有精品5| 十八禁美女裸体网站| 曰韩人妻一区二区三区| 国产成人精品2021欧美日韩| 欧美日韩国产在线人| 国产99在线| 中文字幕永久视频| 欧美成人看片一区二区三区| 日韩毛片基地| 欧美一级夜夜爽www| 日本亚洲成高清一区二区三区| 在线另类稀缺国产呦| 欧美激情视频二区| 欧美成人午夜影院| 日本高清免费一本在线观看| 婷婷五月在线| 在线高清亚洲精品二区| 国产jizzjizz视频| 亚洲免费福利视频| 亚洲综合第一页| 日韩中文字幕免费在线观看| 91在线国内在线播放老师 | 亚洲高清国产拍精品26u| 欧美日韩免费在线视频| 99久久精品无码专区免费| 九色综合伊人久久富二代| 国产美女一级毛片| 国产成人精品高清在线| 日韩午夜片| 伊人中文网| 欧美精品在线视频观看| 国产美女一级毛片| 亚洲自偷自拍另类小说| 国产乱子伦视频在线播放| 欧美中文字幕无线码视频| 欧美成人免费一区在线播放| 麻豆国产精品| 久久国产精品无码hdav| 国产精品综合色区在线观看| 久久国产精品嫖妓| 国产精品人莉莉成在线播放| 欧美一级高清片欧美国产欧美| 最新午夜男女福利片视频| 日韩高清无码免费| 超薄丝袜足j国产在线视频| 国产成熟女人性满足视频| 992Tv视频国产精品| 国产日本欧美在线观看| 国产在线专区| 欧美区国产区| 国产成人精品午夜视频'| 成人年鲁鲁在线观看视频| 在线观看亚洲成人| 色综合久久无码网| 一本一道波多野结衣一区二区 | 亚洲一级毛片| 精品视频一区二区观看| 久久狠狠色噜噜狠狠狠狠97视色| 国产18在线| jizz国产视频| 欧美一级在线| 玩两个丰满老熟女久久网| 无码免费的亚洲视频|