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

基于Docker的HTTP服務器在實驗室的應用

2019-06-11 09:13:40李慧春
實驗室研究與探索 2019年5期
關鍵詞:實驗室

李慧春

(吉林大學 公共計算機教學與研究中心,長春 130021)

0 引 言

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

1 研究背景

1.1 局域網內文件共享方法

局域網內傳輸文件是一種普遍性的需求,目前應用比較廣的解決方案有以下幾種[4-6]:

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

(2)專用的文件傳輸軟件。專業軟件如飛鴿傳書、飛秋、Dukto等都做得很優秀。這些軟件由于是局域網內進行文件傳輸的專業工具,所以具有操作簡單,傳輸速度快的優點。缺點是傳輸雙方需要安裝同一個軟件。

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

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

1.2 Docker技術簡介

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

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

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

1.3 HTTP協議原理

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

HTTP url的格式如下

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

其中,http表示要通過HTTP協議來定位網絡資源;host表示合法的Internet主機域名或者ip地址;port指定一個端口號,為空則使用默認端口80;abs_path指定請求資源在服務器上的位置。

客戶端發送一個url到服務器后,服務器會給予相應的響應信息。客戶端接收服務器所返回的信息,通過瀏覽器顯示在用戶的顯示屏上。

如果在以上過程中的某一步出現錯誤,那么產生的錯誤信息將返回到客戶端,由顯示屏輸出。對于用戶來說,這些過程是由HTTP自己完成的,用戶只要用鼠標點擊,等待信息顯示就可以了。

2 基于Docker的HTTP服務器建設方案

2.1 Docker安裝

由于實驗室的計算機操作系統多為Windows,本文在實驗室中選擇作為HTTP服務器的計算機系統為Win10家庭版,因此需要通過在Docker官網下載Docker Toolbox來安裝Docker[13]。安裝過程結束后,Docker Toolbox自動在物理主機上安裝了VirtualBox軟件,該軟件內運行了Linux虛擬機,也可以稱為Docker主機或Docker虛擬機。在Docker虛擬機中可以創建Linux系統,稱為容器。桌面上多出Docker Quickstart Terminal、Oracle VM VirtualBox和Kitematic 3個應用圖標。其中Docker Quickstart Terminal可以啟動Docker虛擬機。打開Oracle VM VirtualBox應用圖標,會看到Docker默認創建的虛擬機default。

2.2 Docker虛擬機下掛載本地目錄

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

然后在default虛擬機上點擊右鍵,選擇“顯示”,進入虛擬機,輸入以下命令:

cd /mnt

mkdir FolderVM

mount -t vboxsf FolderWin /mnt/FolderVM

圖1 主機與虛擬機共享文件夾設置

這段命令表示:首先進入虛擬機根目錄下的mnt文件夾,新建FolderVM文件目錄。將物理機上FolderWin目錄掛載到虛擬機上,文件系統類型為vboxsf。掛載后查看FolderVM的子目錄。如圖2所示,可以看到主機E:FolderWin文件夾下的文件已經可以顯示出來了。此時在主機的FolderWin文件夾下再加入其它文件,在default虛擬機的/mnt/FolderVM目錄下運行“ls”命令也是可以看到的。這樣就達到了教師隨時隨地在FolderWin目錄下放入文件供學生下載的目的。

圖2 主機文件夾掛載到Docker虛擬機

2.3 創建Dockerfile,運行http-server

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

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

(2)打開Dockerfile,在該文件中輸入如下內容:

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為基礎鏡像新建一個鏡像。接下來是創建者的姓名和郵箱,也可以不寫。然后更新apt-get工具,并使用它來安裝nodejs和npm。這里使用npm工具來安裝http-server。工作目錄設置為/usr/apps/myProjects/。最后使用http-server命令來運行http-server。Dockerfile文件寫好后保存退出即可。

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

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

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

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

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

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

(5)為確認程序spring:http-server是否運行,可以通過執行命令“docker ps”進行查看。

2.4 設置端口轉發

由于Docker的底層使用了Linux容器技術(LXC),其實它只能運行在Linux上,而在Windows系統下要運行Docker,實際上是在虛擬機下運行的。在2.3小節中實現了容器的8080端口與虛擬機的8080端口之間的映射,還需要在VirtualBox的設置中,為NAT網絡模式增加端口轉發規則,把虛擬機的8080端口與主機的8080端口進行映射,如圖3所示。

圖3 端口轉發設置

查看作為服務器的物理主機的ip,學生機在瀏覽器輸入網址http://ip:8080,就可以訪問服務器文件夾FolderWin并下載所需資料了(實驗所用服務器的ip為192.168.31.14)。

3 性能測試

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

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

由表1可以看出,從教師機下載文件時的速度會隨著學生機結點數的增多而變慢。這與局域網中計算機的網卡速率,網絡環境有關系。另外,服務器在多點下載時能夠穩定運行,沒有出現崩潰現象。

表1 不同學生機結點下載文件花費時間表

4 結 語

本文研究并實現了一種基于Docker的實驗室文件共享方法。我校由于Docker的引入,只需要簡單的幾步操作就可以快速搭建起來一個HTTP服務器,為實驗室內其他學生機提供所需的下載文件。雖然現在能夠實現局域網內文件共享的方法很多,但是本文另辟蹊徑,具有一定的參考意義。未來將繼續研究實驗室管理的新方法。

猜你喜歡
實驗室
電競實驗室
電子競技(2020年8期)2020-12-23 04:09:40
電競實驗室
電子競技(2020年7期)2020-10-12 10:45:48
電競實驗室
電子競技(2020年5期)2020-08-10 08:43:10
電競實驗室
電子競技(2020年4期)2020-07-13 09:18:06
電競實驗室
電子競技(2020年2期)2020-04-14 04:40:38
電競實驗室
電子競技(2020年11期)2020-02-07 02:49:36
電競實驗室
電子競技(2020年9期)2020-01-11 01:06:21
電競實驗室
電子競技(2020年10期)2020-01-11 01:06:06
電競實驗室
電子競技(2019年22期)2019-03-07 05:17:26
電競實驗室
電子競技(2019年21期)2019-02-24 06:55:52
主站蜘蛛池模板: h视频在线播放| 久久久久免费精品国产| 亚洲av无码片一区二区三区| 在线观看无码a∨| 亚洲人成电影在线播放| 国产午夜一级毛片| 青青草综合网| 2021国产乱人伦在线播放| 亚洲经典在线中文字幕| 青青热久免费精品视频6| 58av国产精品| 国产成人三级在线观看视频| 狠狠色综合网| 小说区 亚洲 自拍 另类| 欧美中文字幕一区| 久久人妻系列无码一区| 国产成人精品2021欧美日韩| 国产一级一级毛片永久| 最新日本中文字幕| 久久99国产视频| 欧美一级黄色影院| 亚洲男人的天堂网| 国产资源免费观看| 在线看国产精品| 四虎国产精品永久一区| 日本国产精品一区久久久| 国产一级毛片yw| 婷婷综合在线观看丁香| 色综合天天娱乐综合网| 欧美成人区| 在线色综合| 国产 在线视频无码| 日韩在线欧美在线| 欧美在线国产| 57pao国产成视频免费播放| 亚洲第一黄色网址| 午夜无码一区二区三区在线app| 国产香蕉在线视频| 日韩欧美视频第一区在线观看| 性视频久久| 亚洲91精品视频| 成人亚洲国产| 六月婷婷综合| 一区二区日韩国产精久久| 亚洲成网站| 国产美女无遮挡免费视频| 国产精鲁鲁网在线视频| 欧美啪啪一区| 日韩麻豆小视频| 久青草国产高清在线视频| 伊人精品视频免费在线| 在线观看国产精品一区| 18禁不卡免费网站| 国产内射一区亚洲| 欧洲熟妇精品视频| 2020久久国产综合精品swag| 日本少妇又色又爽又高潮| 国产乱人视频免费观看| 国产精品成人观看视频国产| 国产一级毛片在线| 久久综合久久鬼| 久久久久国产精品熟女影院| 国内嫩模私拍精品视频| 国产主播一区二区三区| 亚洲狼网站狼狼鲁亚洲下载| 欧美精品aⅴ在线视频| 四虎在线观看视频高清无码| 日本国产精品| 日韩 欧美 国产 精品 综合| 国产91高跟丝袜| a级毛片免费看| 成人一级免费视频| www亚洲精品| 国产乱人乱偷精品视频a人人澡| 欧美在线三级| 麻豆国产原创视频在线播放| 欧美色丁香| 无码国产伊人| 婷婷五月在线| 国产另类视频| 54pao国产成人免费视频| 亚洲啪啪网|