亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇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é)與研究中心,長春 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)真研究與探索的問題[1-3]。本文在實(shí)驗(yàn)室內(nèi)利用Docker技術(shù)快速搭建起來一個HTTP服務(wù)器,同一局域網(wǎng)內(nèi)其他計(jì)算機(jī)通過瀏覽器訪問這臺服務(wù)器,可以下載各種格式的文件。這種瀏覽器與服務(wù)器(B/S)的架構(gòu)模式,既有利于實(shí)驗(yàn)員在各臺學(xué)生機(jī)上安裝教學(xué)軟件,也有利于教師隨時隨地分享教學(xué)課件給學(xué)生。相比于傳統(tǒng)的U盤拷貝方式,具有節(jié)省時間,防止U盤病毒傳播的優(yōu)點(diǎn)。

        1 研究背景

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

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

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

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

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

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

        1.2 Docker技術(shù)簡介

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

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

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

        1.3 HTTP協(xié)議原理

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

        HTTP url的格式如下

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

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

        客戶端發(fā)送一個url到服務(wù)器后,服務(wù)器會給予相應(yīng)的響應(yīng)信息??蛻舳私邮辗?wù)器所返回的信息,通過瀏覽器顯示在用戶的顯示屏上。

        如果在以上過程中的某一步出現(xiàn)錯誤,那么產(chǎn)生的錯誤信息將返回到客戶端,由顯示屏輸出。對于用戶來說,這些過程是由HTTP自己完成的,用戶只要用鼠標(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家庭版,因此需要通過在Docker官網(wǎng)下載Docker Toolbox來安裝Docker[13]。安裝過程結(jié)束后,Docker Toolbox自動在物理主機(jī)上安裝了VirtualBox軟件,該軟件內(nèi)運(yùn)行了Linux虛擬機(jī),也可以稱為Docker主機(jī)或Docker虛擬機(jī)。在Docker虛擬機(jī)中可以創(chuàng)建Linux系統(tǒng),稱為容器。桌面上多出Docker Quickstart Terminal、Oracle VM VirtualBox和Kitematic 3個應(yīng)用圖標(biāo)。其中Docker Quickstart Terminal可以啟動Docker虛擬機(jī)。打開Oracle VM VirtualBox應(yīng)用圖標(biāo),會看到Docker默認(rèn)創(chuàng)建的虛擬機(jī)default。

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

        主機(jī)上的任意文件夾都可以掛載到Docker虛擬機(jī)下。為了避免出現(xiàn)不必要的麻煩,文件夾和里面存放的文件名稱最好不要出現(xiàn)中文。不失一般性,在主機(jī)的E盤建立一個文件夾,命名為FolderWin,在該文件夾下加入hello.txt和singer.rar文件。現(xiàn)在把FolderWin目錄掛載到Docker的虛擬機(jī)下。進(jìn)入default虛擬機(jī)的設(shè)置頁面,添加共享文件夾,并且把共享文件夾在虛擬機(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)類型為vboxsf。掛載后查看FolderVM的子目錄。如圖2所示,可以看到主機(jī)E:FolderWin文件夾下的文件已經(jīng)可以顯示出來了。此時在主機(jī)的FolderWin文件夾下再加入其它文件,在default虛擬機(jī)的/mnt/FolderVM目錄下運(yùn)行“l(fā)s”命令也是可以看到的。這樣就達(dá)到了教師隨時隨地在FolderWin目錄下放入文件供學(xué)生下載的目的。

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

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

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

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

        (2)打開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”]

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

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

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

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

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

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

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

        (5)為確認(rèn)程序spring:http-server是否運(yùn)行,可以通過執(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,就可以訪問服務(wù)器文件夾FolderWin并下載所需資料了(實(shí)驗(yàn)所用服務(wù)器的ip為192.168.31.14)。

        3 性能測試

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

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

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

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

        4 結(jié) 語

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

        猜你喜歡
        實(shí)驗(yàn)室
        電競實(shí)驗(yàn)室
        電子競技(2020年8期)2020-12-23 04:09:40
        電競實(shí)驗(yàn)室
        電子競技(2020年7期)2020-10-12 10:45:48
        電競實(shí)驗(yàn)室
        電子競技(2020年5期)2020-08-10 08:43:10
        電競實(shí)驗(yàn)室
        電子競技(2020年4期)2020-07-13 09:18:06
        電競實(shí)驗(yàn)室
        電子競技(2020年2期)2020-04-14 04:40:38
        電競實(shí)驗(yàn)室
        電子競技(2020年11期)2020-02-07 02:49:36
        電競實(shí)驗(yàn)室
        電子競技(2020年9期)2020-01-11 01:06:21
        電競實(shí)驗(yàn)室
        電子競技(2020年10期)2020-01-11 01:06:06
        電競實(shí)驗(yàn)室
        電子競技(2019年22期)2019-03-07 05:17:26
        電競實(shí)驗(yàn)室
        電子競技(2019年21期)2019-02-24 06:55:52
        亚洲国产精品久久久久秋霞小说| 偷拍区亚洲区一区二区| 国产av乳头久久一区| 日韩有码在线观看视频| 国产精品免费av片在线观看| 66lu国产在线观看| 亚洲国产剧情一区在线观看| 国产三级不卡视频在线观看| 国产成人精品2021| 久久久久亚洲av无码a片软件| 日韩毛片久久91| 男女啪啪在线视频网站| 亚洲人成影院在线无码按摩店| 亚洲欧美日韩国产综合一区二区| 国产成人一区二区三区高清| 亚洲捆绑女优一区二区三区| 成人无码av一区二区| 日本韩无专砖码高清| 亚洲综合色婷婷七月丁香| 亚洲最大一区二区在线观看| 最新国产精品久久精品| 欧美国产小视频| 91精品国产色综合久久不| 国产精品蝌蚪九色av综合网| 女人下面毛多水多视频| 成人午夜无人区一区二区| 成人影院视频在线播放| 欧洲多毛裸体xxxxx| 天堂网www在线资源| 亚洲av熟女天堂系列| 在线视频中文字幕一区二区三区 | 91一区二区三区在线观看视频| 精品偷拍被偷拍在线观看| 奇米影视久久777中文字幕| 91亚洲精品久久久蜜桃| 亚洲综合中文字幕综合| 午夜精品一区二区三区的区别| 欧美色资源| 日韩av在线不卡一区二区| 色一情一乱一伦| 欧美黑人性色黄在线视频|