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

基于Docker的運(yùn)維平臺(tái)設(shè)計(jì)

2018-04-14 02:05:51張延冬邢艷芳
計(jì)算機(jī)時(shí)代 2018年4期
關(guān)鍵詞:程序

張延冬,邢艷芳

(1.南京南瑞繼保電氣有限公司,江蘇 南京 211102;2.中國傳媒大學(xué)南廣學(xué)院)

0 引言

由于軟件開發(fā)人員與軟件測(cè)試或運(yùn)維人員的環(huán)境信息不對(duì)稱,傳統(tǒng)的軟件交付方式存在很多問題。如軟件發(fā)布分散,使用者安裝軟件時(shí)需要解決軟件的依賴關(guān)系。這些問題不但降低了軟件交付效率,而且難以實(shí)現(xiàn)持續(xù)交付和集成。

作為開源的應(yīng)用容器引擎,Docker很好地解決了上述問題。本文研究了基于Docker的輕量級(jí)虛擬化方案,以及類似于版本管理的映像管理模式。

1 方案設(shè)計(jì)

1.1 工作模塊

Docker的運(yùn)行主要依賴以下幾個(gè)模塊:①Linux操作系統(tǒng),Docker依賴于像Linux容器(LXC)這樣的Linux技術(shù),以及Cgroups和命名空間功能,這些在Windows操作系統(tǒng)尚不存在,所以Linux的操作系統(tǒng)是Docker必不可少的基礎(chǔ)。②虛擬機(jī),由于普遍采用Windows操作系統(tǒng),所以需要虛擬機(jī)安裝Linux操作系統(tǒng)。③VMware虛擬機(jī)軟件,創(chuàng)建虛擬機(jī)并完成配置,以滿足Docker正常使用。配置好基本的硬件信息之后,在虛擬機(jī)上安裝Linux系統(tǒng),采用centOS6.8的操作系統(tǒng),下載并安裝Docker[1]。

1.2 Docker

Docker是軟件工業(yè)的集裝箱技術(shù),它提供了一個(gè)可供應(yīng)用程序運(yùn)行的獨(dú)立空間或者說容器。Docker最初采用Go語言編寫,相當(dāng)于是加在Linux容器上的管道,允許開發(fā)者在更高層次的概念上工作。Docker擴(kuò)展了Linux容器,通過一個(gè)高層次的API為進(jìn)程單獨(dú)提供輕量級(jí)的虛擬環(huán)境。與傳統(tǒng)虛擬機(jī)不同的是,一個(gè)Docker容器并不包含一個(gè)單獨(dú)的操作系統(tǒng),而是基于已有基礎(chǔ)設(shè)施中操作系統(tǒng)所提所供的功能來運(yùn)行[2]。

Docker基于C/S架構(gòu),由客戶端和服務(wù)端組成,主要包含以下組件:①Docker Client,Docker的客戶端。②Docker Server,是Docker daemon的主要組成部分,用于接收用戶通過Docker Client發(fā)來的請(qǐng)求,并按照相應(yīng)的路由規(guī)則實(shí)現(xiàn)路由分發(fā)。③Docker Registry,是Docker鏡像的中央存儲(chǔ)倉庫,用于儲(chǔ)存上傳的私有和公有Docker容器的鏡像備份。Docker的三個(gè)基本要素分別是:①Docker容器,負(fù)責(zé)應(yīng)用程序的運(yùn)行,程序可以是操作系統(tǒng),或者用戶添加的文件和元數(shù)據(jù)。②Docker鏡像,是一個(gè)只讀文件,用來運(yùn)行創(chuàng)建的Docker容器。③Dockerfile文件指令集,用來創(chuàng)建Docker鏡像,其命令用來構(gòu)建容器的每一層[3]。

1.3 部署流程

⑴ 自定義指令集,依據(jù)基礎(chǔ)鏡像,結(jié)合實(shí)際的需要,在Dockerfile指令集中增添命令,創(chuàng)建符合實(shí)際需求的Docker鏡像。

⑵ 創(chuàng)建鏡像,可以通過Dockerfile文件創(chuàng)建,也可以通過倉庫拉取,還可以通過壓縮文件解壓生成鏡像,或者通過容器的反向Commit生成鏡像。

⑶ 生成容器,所有的鏡像文件都是為了生成Docker容器,容器是Docker的核心部分,在容器中部署、運(yùn)維、測(cè)試。

⑷ 上傳和下載鏡像,通過Docker官方提供的開源平臺(tái)Registry倉庫,方便鏡像的使用和傳播[4]。

2 環(huán)境配置

2.1 虛擬機(jī)配置

虛擬機(jī)采用VMware12,可以虛擬所有的操作系統(tǒng),而且操作簡單。首先安裝VMware12,創(chuàng)建典型虛擬機(jī)。隨后用鏡像的centOS系統(tǒng)文件進(jìn)行安裝,選擇好鏡像文件后,對(duì)虛擬機(jī)的硬件進(jìn)行配置,分配內(nèi)存和硬盤空間,網(wǎng)絡(luò)適配器和光驅(qū)/聲卡等其他配置。虛擬機(jī)中安裝centOS系統(tǒng),在操作系統(tǒng)命令行終端,使用Linux命令對(duì)系統(tǒng)進(jìn)行操作。

2.2 Docker安裝配置

在Linux操作系統(tǒng)下安裝Docker。首先打開命令終端檢查本地是否有Linux中的curl命令,如果沒有,輸入sudo yum install curl從yum庫中安裝curl命令。安裝好curl命令后,輸入curl-fsSL http://get.docker.com|sh進(jìn)入Docker官網(wǎng)獲取最新的Docker安裝包進(jìn)行安裝,具體操作參見圖1。

圖1 安裝Docker

使用命令Docker version檢查Docker的版本,正常情況下同時(shí)顯示client版本和server版本。只顯示client版本,表示Docker運(yùn)行時(shí)沒有超級(jí)用戶權(quán)限,命令不能執(zhí)行。使用命令Docker info檢查Docker基本信息,能正確顯示表示Docker已經(jīng)安裝完成。

3 系統(tǒng)實(shí)現(xiàn)

在Linux中使用Vim創(chuàng)建Docker鏡像,編寫Python程序,完成下載和上傳等操作。使用Python語言編寫一段程序放到創(chuàng)建的容器中,測(cè)試程序在容器中的運(yùn)行情況和程序的輸出情況[5]。

3.1 創(chuàng)建鏡像

創(chuàng)建Docker鏡像有很多種辦法,可以在官方網(wǎng)站上使用pull命令下載,也可以用Linux中的Vim命令編寫Dockerfile本地文件系統(tǒng)創(chuàng)建Docker鏡像。分別用兩種方法創(chuàng)建兩個(gè)Docker鏡像。

⑴ 在官方網(wǎng)站上使用pull命令下載

在Docker Registry和云平臺(tái)上存放的鏡像,都是按照用戶名/鏡像名的方式來存儲(chǔ)的。但有一類鏡像比較特殊,比如centos、ubuntu這類基礎(chǔ)鏡像,經(jīng)過官方驗(yàn)證,安全可靠,可以直接通過鏡像名來檢索到。輸入命令:$docker pull busybox,通過Docker命令下載busybox鏡像。執(zhí)行pull命令的時(shí)候要輸入完整的鏡像名稱。

⑵ 使用DockerFile文件創(chuàng)建鏡像

首先創(chuàng)建一個(gè)Dockerfile,包含一些創(chuàng)建鏡像的指令。新建一個(gè)目錄和一個(gè)Dockerfile。

在Dockerfile中每一條指令都創(chuàng)建鏡像的一個(gè)層。Dockerfile使用#來注釋,F(xiàn)ROM命令說明使用哪個(gè)鏡像作為基礎(chǔ)(即父鏡像),已RUN開頭的指令會(huì)在創(chuàng)建過程中運(yùn)行。Dockerfile文件可以通過網(wǎng)上下載或自己編寫,使用git命令從網(wǎng)站clone下載Dockerfile,使用Docker build命令來生成鏡像,如圖2所示。

圖2 創(chuàng)建鏡像

3.2 運(yùn)行容器

Docker容器可以理解為將一個(gè)進(jìn)程在一個(gè)安全封閉的環(huán)境中運(yùn)行。這個(gè)環(huán)境包含了該進(jìn)程運(yùn)行所必須的資源,包括文件系統(tǒng)、系統(tǒng)類庫、shell腳本等等。這個(gè)環(huán)境默認(rèn)不運(yùn)行任何程序,需要在環(huán)境中運(yùn)行一個(gè)進(jìn)程來啟動(dòng)這一個(gè)容器。這個(gè)進(jìn)程是該容器的惟一進(jìn)程,所以當(dāng)該進(jìn)程結(jié)束的時(shí)候,容器也會(huì)完全停止。

創(chuàng)建容器首先要有鏡像文件,通過Docker鏡像文件使用Docker run命令,將鏡像文件運(yùn)行成為Docker容器。啟動(dòng)容器,在容器中運(yùn)行相應(yīng)的程序以達(dá)到快速部署,應(yīng)用隔離。將之前通過兩種方法構(gòu)建的boyan_py和busybox兩個(gè)鏡像文件運(yùn)行成容器。

容器運(yùn)行后,在Python中運(yùn)行寫好的程序,進(jìn)行測(cè)試,檢測(cè)程序的可行性和容器是否已部署完成。

3.3 開源共享

當(dāng)修改了某一個(gè)容器之后,通過執(zhí)行Docker中的commit命令,可以保存對(duì)容器的修改。Docker中保存狀態(tài)的過程稱之為committing,為了與舊版本區(qū)別,會(huì)產(chǎn)生新的版本號(hào)。使用docker ps-l命令獲得容器的id,輸入命令:$docker commit 83ae boyan/centos:7.1,把這個(gè)鏡像保存為boyan/centos:7.1。無需拷貝完整的id,通常起始的三至四個(gè)字母即可區(qū)分,如圖3所示。

圖3 容器封裝成鏡像

通過docker push命令可以將某一個(gè)鏡像發(fā)布到官方的索引網(wǎng)站,分享到這樣的開源平臺(tái),一方面可以重用,另一方面也可以分享使用,提高使用效率,避免重復(fù)勞動(dòng)。docker images命令可以列出所有安裝過的鏡像。

4 調(diào)試與運(yùn)行

4.1 獲取共享的鏡像

在已經(jīng)安裝好的VMware上虛擬第二臺(tái)計(jì)算機(jī),配置和第一臺(tái)相同。同樣在創(chuàng)建好的虛擬機(jī)中安裝Linux系統(tǒng),登錄之后安裝Docker,配置與之前相同。新建好Docker之后,從registry中pull之前上傳的鏡像文件,pull回本地的鏡像文件名與上傳時(shí)一致。

4.2 檢測(cè)鏡像的可行性

使用docker run命令運(yùn)行鏡像文件,使其生成docker容器,在容器中檢驗(yàn)編寫的python程序,測(cè)試容器的性能。執(zhí)行完docker run命令后,生成73f5a93600f8這個(gè)容器,在容器中運(yùn)行python檢測(cè)程序是否可以執(zhí)行,如圖4所示。

圖4 在容器驗(yàn)證Python程序運(yùn)行

5 結(jié)束語

Python程序成功運(yùn)行,表明了運(yùn)維系統(tǒng)的可行性。本文通過創(chuàng)建鏡像、運(yùn)行容器和鏡像共享,驗(yàn)證了Docker容器的快速部署和輕量級(jí)的特點(diǎn),展現(xiàn)了Docker類似集裝箱的技術(shù)在運(yùn)維平臺(tái)搭建中的廣泛應(yīng)用前景[6-7]。

伴隨互聯(lián)網(wǎng)時(shí)代的發(fā)展,程序開發(fā)和運(yùn)維項(xiàng)目日益增多,快捷方便地搭建環(huán)境必將成為趨勢(shì)。Docker降低了開發(fā)人員的繁瑣勞動(dòng),簡化了與測(cè)試運(yùn)維人員的配合,方便在持續(xù)的集成環(huán)境中進(jìn)行部署和驗(yàn)證工作。未來還需考慮Docker在Windows系統(tǒng)中的應(yīng)用,以及共享的安全性,私有庫的身份驗(yàn)證,安全機(jī)制等方面。

參考文獻(xiàn)(References):

[1]陳康,黃炳良.基于openstack云平臺(tái)的docker應(yīng)用[J].軟件,2014.11:73-76

[2]張怡.基于Docker的虛擬化應(yīng)用平臺(tái)設(shè)計(jì)與實(shí)現(xiàn)[D].華南理工大學(xué)碩士學(xué)位論文,2016.

[3]王飛.基于Docker的研發(fā)部署管理平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)[D].北京交通大學(xué)碩士學(xué)位論文,2015.

[4]劉琳羽,南凱.一種基于Docker的開發(fā)者服務(wù)平臺(tái)設(shè)計(jì)[J].科研信息化技術(shù)與應(yīng)用,2015.5:65-72

[5]胡湘菲.軟件自動(dòng)化測(cè)試環(huán)境搭建中的Docker應(yīng)用[J].計(jì)算機(jī)時(shí)代,2017.3:26-29

[6]逸凡.從Docker的流行談云計(jì)算的走向[N].網(wǎng)絡(luò)世界,2015-03-09(014).

[7]E.Mazzoni,S.Arezzini,T.Boccali,A.Ciampa,S.Coscetti,D.Bonacorsi.Docker experience at INFN-Pisa Grid Data Center[J].Journal of Physics:Conference Series,2015.664(2).

猜你喜歡
程序
給Windows添加程序快速切換欄
電腦愛好者(2020年6期)2020-05-26 09:27:33
試論我國未決羈押程序的立法完善
失能的信仰——走向衰亡的民事訴訟程序
“程序猿”的生活什么樣
英國與歐盟正式啟動(dòng)“離婚”程序程序
基于VMM的程序行為異常檢測(cè)
偵查實(shí)驗(yàn)批準(zhǔn)程序初探
我國刑事速裁程序的構(gòu)建
創(chuàng)衛(wèi)暗訪程序有待改進(jìn)
恐怖犯罪刑事訴訟程序的完善
主站蜘蛛池模板: 四虎在线观看视频高清无码| 1级黄色毛片| 福利在线不卡| 日韩精品无码一级毛片免费| 免费xxxxx在线观看网站| 日韩高清欧美| 欧美yw精品日本国产精品| 欧美日韩一区二区在线播放| av在线无码浏览| 人人艹人人爽| 伊人久久大香线蕉影院| 国产精品无码一二三视频| 成人福利在线看| 操国产美女| 尤物亚洲最大AV无码网站| 国产午夜人做人免费视频中文| 四虎国产在线观看| 亚欧成人无码AV在线播放| 天堂亚洲网| 国产精品女主播| 玖玖精品在线| 欧美综合一区二区三区| 日本草草视频在线观看| 国产免费一级精品视频| 日韩精品中文字幕一区三区| 激情视频综合网| 欧美另类图片视频无弹跳第一页| 高清色本在线www| a级毛片免费看| 国产精品开放后亚洲| 亚洲欧洲日本在线| 亚洲国产中文精品va在线播放| 久久永久视频| 国产精品网拍在线| 国产人人射| 久草视频精品| 日韩精品免费一线在线观看| 国产午夜福利在线小视频| 欧美精品啪啪一区二区三区| 国产青青草视频| 黄色污网站在线观看| 2021国产精品自拍| 国产尹人香蕉综合在线电影| 国产三级视频网站| 香蕉eeww99国产在线观看| 青青草a国产免费观看| 日本高清在线看免费观看| 日本www色视频| 久久国产精品无码hdav| 国模粉嫩小泬视频在线观看 | 亚洲欧美人成电影在线观看| 亚洲美女高潮久久久久久久| 青草娱乐极品免费视频| 国产高清精品在线91| 国产激情无码一区二区免费| 超碰色了色| 青青青国产视频| 中国国产一级毛片| 狠狠五月天中文字幕| 亚洲h视频在线| 亚洲男人天堂2020| 国产成人av一区二区三区| 欧美成人国产| 日韩福利视频导航| 91毛片网| 怡红院美国分院一区二区| 91精品最新国内在线播放| 人妻中文久热无码丝袜| 久久天天躁狠狠躁夜夜躁| 91高清在线视频| 最新国产午夜精品视频成人| 美女扒开下面流白浆在线试听 | 精品少妇人妻无码久久| 爱做久久久久久| 国产成人精品亚洲日本对白优播| 亚洲一区二区成人| 激情无码视频在线看| 国产一区二区福利| 波多野结衣一区二区三区四区| 亚洲无码在线午夜电影| 精品视频福利| 久久综合九九亚洲一区|