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

基于Docker的HTTP服務(wù)器在實(shí)驗(yàn)室的應(yīng)用

2019-06-11 09:13:40李慧春
實(shí)驗(yàn)室研究與探索 2019年5期
關(guān)鍵詞:實(shí)驗(yàn)室

李慧春

(吉林大學(xué) 公共計(jì)算機(jī)教學(xué)與研究中心,長(zhǎng)春 130021)

0 引 言

高校實(shí)驗(yàn)室是進(jìn)行實(shí)驗(yàn)教學(xué)、科學(xué)研究、人才培養(yǎng)的重要基地。如何高質(zhì)量高效率地管理實(shí)驗(yàn)室,創(chuàng)新實(shí)驗(yàn)室管理方法,是實(shí)驗(yàn)技術(shù)人員必須認(rèn)真研究與探索的問(wèn)題[1-3]。本文在實(shí)驗(yàn)室內(nèi)利用Docker技術(shù)快速搭建起來(lái)一個(gè)HTTP服務(wù)器,同一局域網(wǎng)內(nèi)其他計(jì)算機(jī)通過(guò)瀏覽器訪(fǎng)問(wèn)這臺(tái)服務(wù)器,可以下載各種格式的文件。這種瀏覽器與服務(wù)器(B/S)的架構(gòu)模式,既有利于實(shí)驗(yàn)員在各臺(tái)學(xué)生機(jī)上安裝教學(xué)軟件,也有利于教師隨時(shí)隨地分享教學(xué)課件給學(xué)生。相比于傳統(tǒng)的U盤(pán)拷貝方式,具有節(jié)省時(shí)間,防止U盤(pán)病毒傳播的優(yōu)點(diǎn)。

1 研究背景

1.1 局域網(wǎng)內(nèi)文件共享方法

局域網(wǎng)內(nèi)傳輸文件是一種普遍性的需求,目前應(yīng)用比較廣的解決方案有以下幾種[4-6]:

(1)操作系統(tǒng)自帶的文件共享方式。把文件或驅(qū)動(dòng)器設(shè)置為網(wǎng)絡(luò)共享的,同一局域網(wǎng)內(nèi)的其他電腦可以通過(guò)訪(fǎng)問(wèn)共享文件夾下載文件。這種方法雖然不需要額外安裝軟件,但是由于操作系統(tǒng)版本、組策略設(shè)置、Windows防火墻等問(wèn)題,用戶(hù)使用并不是很方便。

(2)專(zhuān)用的文件傳輸軟件。專(zhuān)業(yè)軟件如飛鴿傳書(shū)、飛秋、Dukto等都做得很優(yōu)秀。這些軟件由于是局域網(wǎng)內(nèi)進(jìn)行文件傳輸?shù)膶?zhuān)業(yè)工具,所以具有操作簡(jiǎn)單,傳輸速度快的優(yōu)點(diǎn)。缺點(diǎn)是傳輸雙方需要安裝同一個(gè)軟件。

(3)FTP/WEB服務(wù)器模式。用戶(hù)通過(guò)FTP客戶(hù)端或?yàn)g覽器訪(fǎng)問(wèn)服務(wù)器可以下載所需要的資源。目前應(yīng)用比較多的有HFS(HTTP File Server)工具等。這種模式使用起來(lái)很方便,接收方只需要安裝瀏覽器就可以了。本文方法屬于此模式。

(4)其他工具,如QQ,BitTorrent,百度云網(wǎng)盤(pán)等。這類(lèi)工具帶有局域網(wǎng)傳輸文件的功能但并非僅限于局域網(wǎng)傳輸,大部分需要外網(wǎng)支持。它們功能強(qiáng)大,但針對(duì)性不強(qiáng)。

1.2 Docker技術(shù)簡(jiǎn)介

Docker是基于go語(yǔ)言實(shí)現(xiàn)的開(kāi)源的容器引擎,誕生于2013年[7]。Docker容器是在操作系統(tǒng)層面上實(shí)現(xiàn)虛擬化,直接使用本地主機(jī)的操作系統(tǒng)。傳統(tǒng)虛擬化方式下每個(gè)虛擬機(jī)都會(huì)有虛擬的GuestOS,需要額外的操作系統(tǒng)開(kāi)銷(xiāo)。相比起來(lái),Docker容器更加輕量級(jí)。Docker具備的諸多優(yōu)點(diǎn)使其發(fā)展前景被業(yè)內(nèi)普遍看好。現(xiàn)在主流的Linux操作系統(tǒng)都已經(jīng)支持Docker。在最近Linux基金會(huì)的調(diào)查中,Docker是僅次于OpenStack的最受歡迎的云計(jì)算開(kāi)源項(xiàng)目[8]。

Docker的大部分操作都圍繞著它的3大核心概念——鏡像、容器和倉(cāng)庫(kù)而展開(kāi)。Docker鏡像可以包含一個(gè)基本的操作系統(tǒng)環(huán)境,里面僅安裝了Apache應(yīng)用程序,或用戶(hù)需要的其他軟件。容器是從鏡像創(chuàng)建的運(yùn)行實(shí)例。可以把Docker容器看作是一個(gè)簡(jiǎn)易版的Linux系統(tǒng)環(huán)境(包括root 用戶(hù)權(quán)限、進(jìn)程空間、用戶(hù)空間和網(wǎng)絡(luò)空間等)以及運(yùn)行在其中的應(yīng)用程序打包而成的盒子。Docker倉(cāng)庫(kù)類(lèi)似于代碼倉(cāng)庫(kù),它是Docker集中存放鏡像文件的場(chǎng)所。目前最大的公開(kāi)倉(cāng)庫(kù)是官方提供的Docker Hub,其中存放了數(shù)量龐大的鏡像供用戶(hù)下載[9]。

Docker在主流的操作系統(tǒng)和云平臺(tái)上都可以使用,包括Linux操作系統(tǒng)(如Ubuntu、Debian、CentOS、Redhat等)、MacOS操作系統(tǒng)和Windows操作系統(tǒng),以及AWS等云平臺(tái)。目前Linux操作系統(tǒng)對(duì)Docker的支持是原生的,使用體驗(yàn)最好。對(duì)于Windows操作系統(tǒng)來(lái)說(shuō),目前只有Win10專(zhuān)業(yè)版和企業(yè)版用戶(hù)可以使用官方的Docker for Windows應(yīng)用來(lái)安裝Docker,其他版本需要通過(guò)虛擬機(jī)方式安裝[10-11]。

1.3 HTTP協(xié)議原理

超文本傳輸協(xié)議(HyperText Transfer Protocol,HTTP)是用于從www服務(wù)器傳輸超文本到本地瀏覽器的傳送協(xié)議[12]。

HTTP url的格式如下

http://host[:port][abs_path]

其中,http表示要通過(guò)HTTP協(xié)議來(lái)定位網(wǎng)絡(luò)資源;host表示合法的Internet主機(jī)域名或者ip地址;port指定一個(gè)端口號(hào),為空則使用默認(rèn)端口80;abs_path指定請(qǐng)求資源在服務(wù)器上的位置。

客戶(hù)端發(fā)送一個(gè)url到服務(wù)器后,服務(wù)器會(huì)給予相應(yīng)的響應(yīng)信息。客戶(hù)端接收服務(wù)器所返回的信息,通過(guò)瀏覽器顯示在用戶(hù)的顯示屏上。

如果在以上過(guò)程中的某一步出現(xiàn)錯(cuò)誤,那么產(chǎn)生的錯(cuò)誤信息將返回到客戶(hù)端,由顯示屏輸出。對(duì)于用戶(hù)來(lái)說(shuō),這些過(guò)程是由HTTP自己完成的,用戶(hù)只要用鼠標(biāo)點(diǎn)擊,等待信息顯示就可以了。

2 基于Docker的HTTP服務(wù)器建設(shè)方案

2.1 Docker安裝

由于實(shí)驗(yàn)室的計(jì)算機(jī)操作系統(tǒng)多為Windows,本文在實(shí)驗(yàn)室中選擇作為HTTP服務(wù)器的計(jì)算機(jī)系統(tǒng)為Win10家庭版,因此需要通過(guò)在Docker官網(wǎng)下載Docker Toolbox來(lái)安裝Docker[13]。安裝過(guò)程結(jié)束后,Docker Toolbox自動(dòng)在物理主機(jī)上安裝了VirtualBox軟件,該軟件內(nèi)運(yùn)行了Linux虛擬機(jī),也可以稱(chēng)為Docker主機(jī)或Docker虛擬機(jī)。在Docker虛擬機(jī)中可以創(chuàng)建Linux系統(tǒng),稱(chēng)為容器。桌面上多出Docker Quickstart Terminal、Oracle VM VirtualBox和Kitematic 3個(gè)應(yīng)用圖標(biāo)。其中Docker Quickstart Terminal可以啟動(dòng)Docker虛擬機(jī)。打開(kāi)Oracle VM VirtualBox應(yīng)用圖標(biāo),會(huì)看到Docker默認(rèn)創(chuàng)建的虛擬機(jī)default。

2.2 Docker虛擬機(jī)下掛載本地目錄

主機(jī)上的任意文件夾都可以?huà)燧d到Docker虛擬機(jī)下。為了避免出現(xiàn)不必要的麻煩,文件夾和里面存放的文件名稱(chēng)最好不要出現(xiàn)中文。不失一般性,在主機(jī)的E盤(pán)建立一個(gè)文件夾,命名為FolderWin,在該文件夾下加入hello.txt和singer.rar文件。現(xiàn)在把FolderWin目錄掛載到Docker的虛擬機(jī)下。進(jìn)入default虛擬機(jī)的設(shè)置頁(yè)面,添加共享文件夾,并且把共享文件夾在虛擬機(jī)中也命名為“FolderWin”,操作如圖1所示。

然后在default虛擬機(jī)上點(diǎn)擊右鍵,選擇“顯示”,進(jìn)入虛擬機(jī),輸入以下命令:

cd /mnt

mkdir FolderVM

mount -t vboxsf FolderWin /mnt/FolderVM

圖1 主機(jī)與虛擬機(jī)共享文件夾設(shè)置

這段命令表示:首先進(jìn)入虛擬機(jī)根目錄下的mnt文件夾,新建FolderVM文件目錄。將物理機(jī)上FolderWin目錄掛載到虛擬機(jī)上,文件系統(tǒng)類(lèi)型為vboxsf。掛載后查看FolderVM的子目錄。如圖2所示,可以看到主機(jī)E:FolderWin文件夾下的文件已經(jīng)可以顯示出來(lái)了。此時(shí)在主機(jī)的FolderWin文件夾下再加入其它文件,在default虛擬機(jī)的/mnt/FolderVM目錄下運(yùn)行“l(fā)s”命令也是可以看到的。這樣就達(dá)到了教師隨時(shí)隨地在FolderWin目錄下放入文件供學(xué)生下載的目的。

圖2 主機(jī)文件夾掛載到Docker虛擬機(jī)

2.3 創(chuàng)建Dockerfile,運(yùn)行http-server

Dockerfile是構(gòu)建鏡像的基本方式,它通過(guò)一系列的指令來(lái)告訴Docker怎樣創(chuàng)建和配置容器[14]。本文使用http-server程序來(lái)建立服務(wù)器。http-server是一個(gè)簡(jiǎn)單的、無(wú)需任何配置的命令行服務(wù)器,用戶(hù)可以通過(guò)HTTP協(xié)議查看服務(wù)器所指定工作目錄下的文件[15]。

(1)進(jìn)入default虛擬機(jī),創(chuàng)建一個(gè)目錄,假定命名為myHTTPServer。在該目錄下,用touch命令創(chuàng)建一個(gè)文件,命名為Dockerfile,沒(méi)有擴(kuò)展名。需要注意的是default虛擬機(jī)默認(rèn)的工作目錄是/root,它僅僅掛載在內(nèi)存中,關(guān)閉系統(tǒng)后數(shù)據(jù)會(huì)丟失。所以最好切換到其他目錄下再創(chuàng)建myHTTPServer目錄。

(2)打開(kāi)Dockerfile,在該文件中輸入如下內(nèi)容:

FROM ubuntu:latest

MAINTAINER abcdeabcde@example.com

RUN apt-get update

RUN apt-get install -y nodejs

RUN apt-get install -y npm

RUN npm install -g http-server

WORKDIR /usr/apps/myProjects/

CMD [“http-server”,“-s”]

這幾句命令的意思是:以u(píng)buntu:latest為基礎(chǔ)鏡像新建一個(gè)鏡像。接下來(lái)是創(chuàng)建者的姓名和郵箱,也可以不寫(xiě)。然后更新apt-get工具,并使用它來(lái)安裝nodejs和npm。這里使用npm工具來(lái)安裝http-server。工作目錄設(shè)置為/usr/apps/myProjects/。最后使用http-server命令來(lái)運(yùn)行http-server。Dockerfile文件寫(xiě)好后保存退出即可。

(3)在myHTTPServer目錄下執(zhí)行如下命令:

docker build -t “spring:http-server” .

這個(gè)命令使用當(dāng)前目錄下的Dockerfile文件創(chuàng)建了一個(gè)spring:http-server的鏡像,其中spring是本文示例倉(cāng)庫(kù)的名字,可以任意指定,http-server是鏡像的標(biāo)簽。

(4)在Docker終端的命令行工具下,執(zhí)行如下命令:

docker run -d -v /mnt/FolderVM:/usr/apps/myProjects/-p 8080:8080 “spring:http-server”

這段命令表示:?jiǎn)?dòng)spring:http-server程序,創(chuàng)建容器。通過(guò)“-d”參數(shù),把啟動(dòng)的程序設(shè)置到后臺(tái)運(yùn)行。通過(guò)參數(shù)“-v”,把虛擬機(jī)的/mnt/FolderVM目錄掛載到容器的/usr/apps/myProjects/目錄,實(shí)現(xiàn)二者之間的數(shù)據(jù)交換。由于前面已經(jīng)把主機(jī)的E:FolderWin與/mnt/FolderVM 做了對(duì)應(yīng),所以這里間接實(shí)現(xiàn)了主機(jī)文件夾和容器工作目錄的對(duì)應(yīng)。最后實(shí)現(xiàn)了容器的8080端口與虛擬機(jī)的8080端口的映射。命令中的前一個(gè)8080是虛擬機(jī)的端口號(hào),后一個(gè)8080是容器的端口號(hào)。容器的端口號(hào)必須是8080,因?yàn)樗莌ttp-server對(duì)外提供服務(wù)的指定端口。

(5)為確認(rèn)程序spring:http-server是否運(yùn)行,可以通過(guò)執(zhí)行命令“docker ps”進(jìn)行查看。

2.4 設(shè)置端口轉(zhuǎn)發(fā)

由于Docker的底層使用了Linux容器技術(shù)(LXC),其實(shí)它只能運(yùn)行在Linux上,而在Windows系統(tǒng)下要運(yùn)行Docker,實(shí)際上是在虛擬機(jī)下運(yùn)行的。在2.3小節(jié)中實(shí)現(xiàn)了容器的8080端口與虛擬機(jī)的8080端口之間的映射,還需要在VirtualBox的設(shè)置中,為NAT網(wǎng)絡(luò)模式增加端口轉(zhuǎn)發(fā)規(guī)則,把虛擬機(jī)的8080端口與主機(jī)的8080端口進(jìn)行映射,如圖3所示。

圖3 端口轉(zhuǎn)發(fā)設(shè)置

查看作為服務(wù)器的物理主機(jī)的ip,學(xué)生機(jī)在瀏覽器輸入網(wǎng)址http://ip:8080,就可以訪(fǎng)問(wèn)服務(wù)器文件夾FolderWin并下載所需資料了(實(shí)驗(yàn)所用服務(wù)器的ip為192.168.31.14)。

3 性能測(cè)試

為了驗(yàn)證本文方法的性能,在實(shí)驗(yàn)室機(jī)房進(jìn)行了文件分發(fā)性能測(cè)試。測(cè)試機(jī)房安裝有40臺(tái)學(xué)生機(jī),1臺(tái)教師機(jī)。學(xué)生機(jī)與教師機(jī)的配置均為:cpu型號(hào)i5-6500,4GB內(nèi)存,1TB硬盤(pán),Win10家庭版64位操作系統(tǒng)。所有計(jì)算機(jī)連接在2臺(tái)24口H3C千兆交換機(jī)上,型號(hào)為S1224R。所有交換機(jī)連接在1臺(tái)H3C路由器上,型號(hào)為S5120。

把教師機(jī)配置為本文方法的服務(wù)器。在學(xué)生機(jī)上使用IE瀏覽器訪(fǎng)問(wèn)服務(wù)器下載文件。為了測(cè)試多點(diǎn)同時(shí)下載時(shí)服務(wù)器的抗壓性能,測(cè)試文件選用2.40GB的大文件。學(xué)生機(jī)下載前打開(kāi)IE瀏覽器自帶的抓包工具,下載完成后,記錄下載文件所用的時(shí)間。統(tǒng)計(jì)結(jié)果如表1所示。

由表1可以看出,從教師機(jī)下載文件時(shí)的速度會(huì)隨著學(xué)生機(jī)結(jié)點(diǎn)數(shù)的增多而變慢。這與局域網(wǎng)中計(jì)算機(jī)的網(wǎng)卡速率,網(wǎng)絡(luò)環(huán)境有關(guān)系。另外,服務(wù)器在多點(diǎn)下載時(shí)能夠穩(wěn)定運(yùn)行,沒(méi)有出現(xiàn)崩潰現(xiàn)象。

表1 不同學(xué)生機(jī)結(jié)點(diǎn)下載文件花費(fèi)時(shí)間表

4 結(jié) 語(yǔ)

本文研究并實(shí)現(xiàn)了一種基于Docker的實(shí)驗(yàn)室文件共享方法。我校由于Docker的引入,只需要簡(jiǎn)單的幾步操作就可以快速搭建起來(lái)一個(gè)HTTP服務(wù)器,為實(shí)驗(yàn)室內(nèi)其他學(xué)生機(jī)提供所需的下載文件。雖然現(xiàn)在能夠?qū)崿F(xiàn)局域網(wǎng)內(nèi)文件共享的方法很多,但是本文另辟蹊徑,具有一定的參考意義。未來(lái)將繼續(xù)研究實(shí)驗(yàn)室管理的新方法。

猜你喜歡
實(shí)驗(yàn)室
電競(jìng)實(shí)驗(yàn)室
電競(jìng)實(shí)驗(yàn)室
電競(jìng)實(shí)驗(yàn)室
電競(jìng)實(shí)驗(yàn)室
電競(jìng)實(shí)驗(yàn)室
電競(jìng)實(shí)驗(yàn)室
電競(jìng)實(shí)驗(yàn)室
電競(jìng)實(shí)驗(yàn)室
電競(jìng)實(shí)驗(yàn)室
電競(jìng)實(shí)驗(yàn)室
主站蜘蛛池模板: 国产亚洲精久久久久久无码AV| 99热这里只有精品久久免费| 日韩免费毛片| 欧美日韩国产系列在线观看| 伊人久热这里只有精品视频99| 2021国产精品自拍| 老司机aⅴ在线精品导航| 精品一区二区久久久久网站| 91系列在线观看| 日韩专区欧美| 久久九九热视频| 国产高清不卡视频| 亚洲伊人天堂| 久草国产在线观看| 婷婷六月天激情| 亚洲第一区在线| 国产尤物jk自慰制服喷水| 亚洲精品自在线拍| 最新午夜男女福利片视频| 九色综合视频网| 人妻丰满熟妇啪啪| 午夜丁香婷婷| 91av国产在线| 欧美午夜视频在线| 亚洲最猛黑人xxxx黑人猛交| 极品国产一区二区三区| 51国产偷自视频区视频手机观看| 国产在线第二页| 高清不卡毛片| 国内精品伊人久久久久7777人| 亚洲欧美另类视频| 欧美精品二区| 在线亚洲小视频| 国产精品自在线拍国产电影 | 丁香五月激情图片| 亚洲一级色| 亚洲中文字幕国产av| 国产精品毛片一区| 久草性视频| 免费人成黄页在线观看国产| 影音先锋丝袜制服| 高清无码不卡视频| 久久久无码人妻精品无码| 色综合中文| 538精品在线观看| 日韩免费成人| 免费国产无遮挡又黄又爽| 国产亚洲精品97AA片在线播放| 国产精品v欧美| 国产97公开成人免费视频| a级毛片一区二区免费视频| 99免费在线观看视频| 久久国产精品无码hdav| 91美女视频在线观看| 亚洲资源站av无码网址| 欧美亚洲国产日韩电影在线| 超薄丝袜足j国产在线视频| 国产成熟女人性满足视频| a级毛片免费看| 中文字幕日韩丝袜一区| 国产一区二区丝袜高跟鞋| 国产性猛交XXXX免费看| 夜精品a一区二区三区| 91精品国产麻豆国产自产在线| 全免费a级毛片免费看不卡| 99人妻碰碰碰久久久久禁片 | 亚洲一区二区在线无码| 国产精品三级av及在线观看| 国产91麻豆视频| 国产成人精品免费视频大全五级| 人妻熟妇日韩AV在线播放| 成人精品视频一区二区在线| 亚洲久悠悠色悠在线播放| 欧美a在线看| 日韩精品一区二区三区视频免费看| 无码专区国产精品第一页| 精品中文字幕一区在线| 狼友av永久网站免费观看| 69国产精品视频免费| 久久精品这里只有精99品| 本亚洲精品网站| 亚洲精品视频网|