国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Docker服務(wù)器的云平臺實現(xiàn)

2019-05-24 14:11葛育佳李亮陸冬磊
電腦知識與技術(shù) 2019年4期
關(guān)鍵詞:云平臺容器服務(wù)器

葛育佳 李亮 陸冬磊

摘要:隨著大學(xué)計算機專業(yè)學(xué)習(xí)進度的增加,專業(yè)課越來越多,專業(yè)課上所需要的軟件也越來越多,軟件所需要的環(huán)境也越來越復(fù)雜,軟件運行環(huán)境在軟件中扮演著重要角色,他肩負著保證軟件正常運行的重任,但是不同的軟件所需要的兼容性不同,所需要的環(huán)境也不同,將不同的軟件安裝在同一個系統(tǒng)上極易出現(xiàn)環(huán)境不兼容導(dǎo)致程序崩潰,如果使用虛擬機分軟件安裝虛擬系統(tǒng),會導(dǎo)致極大的資源浪費和資源占用,電腦的性能將急劇下降,本文基于docker并結(jié)合實際案例就解決單臺電腦同時運行不同環(huán)境的軟件導(dǎo)致性能下降問題進行了探討和分析,通過本文的論述為廣大計算機專業(yè)的教師和學(xué)生提供參考和建議。

關(guān)鍵詞:Docker;容器;服務(wù)器;云平臺

中圖分類號:TP311 文獻標(biāo)識碼:A 文章編號:1009-3044(2019)04-0230-03

Abstract: With the increase of the learning progress of computer specialty in universities, more and more specialized courses, more and more software needed in specialized courses, and more and more complex environment needed for software, the software running environment plays an important role in software. He shoulders the responsibility of ensuring the normal operation of software, but different softwares. The compatibility of software is different and the environment is different. Installing different software on the same system is very easy to cause program crash. If the virtual system is installed with the Sub-Software of virtual machine, it will lead to a great waste of resources and resource occupancy, and the performance of computer will decline dramatically. Based on docker and practical cases, this paper discusses and analyses how to solve the problem of performance degradation caused by software running in different environments on a single computer at the same time, and provides reference and suggestions for teachers and students of computer specialty through the discussion in this paper.

Key words: Docker; container; server; cloud platform

在教學(xué)活動中,經(jīng)常會出現(xiàn)這種情況:某些課上需要用到兩個環(huán)境相沖突的軟件,這時就需要重啟電腦,但是重啟電腦很耗費時間,使用虛擬機虛擬兩臺計算機雖然可以讓兩個軟件同時運行,但是性能會大打折扣,也會造成物理機的資源浪費,本文就相關(guān)問題進行探討,并就使用docker技術(shù)解決此問題進行實驗,探索解決該問題的可行性。

1 Docker簡介

Docker是基于linux內(nèi)核的類似于虛擬機的開源的容器引擎,能夠?qū)崿F(xiàn)虛擬化的系統(tǒng)及操作,其實docker本身不是容器,實質(zhì)為版本管理工具,根據(jù)Apache2.0協(xié)議實現(xiàn),最初利用Go語言編寫[1][2]。2013年,由dotCloud公司對外公布了開源項目Docker,不斷簡化容器方案。Docker可以解決統(tǒng)一化方式管理全部容器的困難,并且提升了性能和高可擴展能力。Docker容器的發(fā)明是采用集裝箱思想,為應(yīng)用提供了基于容器的運輸系統(tǒng)。Docker將任何應(yīng)用和依賴封裝成輕量級、自包含、可移植的容器。

2 項目設(shè)計

2.1工作方式

Docker在創(chuàng)建容器的時候,它會加載指定的僅讀鏡像,而且在鏡像上會加入一個可讀可寫的一層(就是把該鏡像所在的目錄復(fù)制一份到/var/lib/docker/aufs/mnt下的以ID號碼為文件夾名稱的目錄。使用chroot命令即可進入此文件夾,其目錄結(jié)構(gòu)與容器里面的目錄一致)。

若在正在運行中的容器中改動現(xiàn)有的一個已存在的文件,那么該文件將會從鏡像的只讀層復(fù)制到讀寫層,實際上該鏡像上的文件仍沒有改動,只是鏡像中的該文件已經(jīng)被讀寫層鏡像中修改過的文件所隱藏。若刪除現(xiàn)有的docker容器并使用原來的鏡像再一次創(chuàng)建容器并使用時,之前所做的修改將無法保存。

2.2工作流程

(1)創(chuàng)建鏡像,通過創(chuàng)建Dockerfile文件,將mysql容器配置的數(shù)據(jù)文件存放于此。

(2)生成容器,將所有的鏡像文件整合到一起生成Docker容器,安放、運維、測試都在容器中進行。

(3)鏡像的上傳與下載,通過docker官方提供的平臺進行使用與傳播。

2.3 Docker安全性

在使用Docker時采用不恰當(dāng)?shù)陌踩绞娇赡軙⑼{到主機的安全。而對于docker有兩個關(guān)鍵的技術(shù):“一個是linux容器技術(shù),另一個是docker鏡像技術(shù)?!盵3]其中,Namespace用于實現(xiàn)操作系統(tǒng)之間的資源互相隔絕,為進程提供了不一樣的命名空間;DDoS拒絕服務(wù)即為多租戶的系統(tǒng)中最常見的黑客攻擊方式,一個進程或一組進程企圖消耗當(dāng)前系統(tǒng)的所有可用資源,來達到干擾其他正常進程操作的目的;Capability的能力機制是linux內(nèi)核本身所支持的安全性特征,可在進程和文件中實現(xiàn)更細精度的權(quán)限管理;用戶也可以選擇啟用現(xiàn)有的安全軟件或安全機制來加固Docker的安全,比如SELinux等;Docker容器是通過Docker的鏡像來啟動的,如果鏡像的本身含有安全漏洞或者攻擊者將精心設(shè)計的木馬植入鏡像,那么它帶來的危害可能會像病毒般迅速的傳播。[4]

3 環(huán)境配置

3.1虛擬機配置

虛擬機使用了VMware15,如同主機,可以簡單地虛擬出所有的主流系統(tǒng)。首先,先安裝VMware15,創(chuàng)建典型虛擬機。再用CentOS 7 安裝鏡像進行安裝,之后在對硬件進行配置,分配內(nèi)存、CPU、硬盤等,然后用在實體機安裝系統(tǒng)的方式安裝CentOS 7在虛擬機上。安裝完成后,在剛剛裝好的centos7的終端內(nèi)使用linux shell命令,來進行系統(tǒng)操作。

3.2 Docker安裝

迄今為止,CentOS只在內(nèi)核的發(fā)行版本中支持Docker。在CentOS 7上,Docker運行的前提是需要為64位操作系統(tǒng)且內(nèi)核版本需要在3.10及以上版本才可以運行。使用uname -r 命令確認當(dāng)前的系統(tǒng)內(nèi)核版本。先用yum install -y yum-utils device-mapper-persistent-data lvm2命令安裝一些必要的系統(tǒng)工具;如圖1所示:

再使用yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo命令添加軟件源信息;如圖2所示:

4 項目實現(xiàn)

在Linux中使用vim編輯器創(chuàng)建docker鏡像,在docker hub下拉取mysql鏡像,完成上傳docker hub與下載等一系列操作。之后測試鏡像在容器中運行的情況。

4.1創(chuàng)建鏡像

首先,創(chuàng)建目錄和一個Dockerfile文件,其中包含一些創(chuàng)建鏡像的指令。使用以下三條命令完成以上動作:mkdirmysql cd mysql vim Dockerfile。在Dockerfile中的每一條指令都是創(chuàng)建鏡像中的一個層。在Dockerfile中使用#來注釋,F(xiàn)ROM命令意義是使用哪一個鏡像作為基礎(chǔ)鏡像(即父鏡像),以RUN為首的指令則會在創(chuàng)建過程中進行運行操作。Dockerfile文件可以在網(wǎng)上下載或者自己編寫,之后使用Dockerbuild命令來創(chuàng)建鏡像。

4.2運行容器

可以將Docker容器理解為將一個進程在一個封閉且安全的環(huán)境中運行。此環(huán)境包含了此進程運行所不可或缺的資源,包括系統(tǒng)類庫、shell腳本、文件系統(tǒng)等等。此環(huán)境默許不會運行任何的程序,需要在環(huán)境中啟動一個進程來打開這一容器。此進程也是該容器的惟一的進程,當(dāng)該進程結(jié)束時,容器也將會完全停止。首先創(chuàng)建容器需要有鏡像文件,可以通過Docker鏡像文件來使用Docker run命令,鏡像文件即可運行成為Docker容器。啟動容器,在容器之中運行相應(yīng)的程序就可以達到快速的部署以及應(yīng)用的隔離。通過命令將之前創(chuàng)建的boyan_py和busybox兩個鏡像運行成為容器。命令為docker run -d -it boyan_py;docker run busybox。容器成功運行之后,運行MySQL,進行簡單的測試,檢測MYSQL的可行性以及容器是否已經(jīng)安裝完成。

4.3開源共享

在修改過某一個容器后,通過運行Docker中的commit命令,保存對容器中數(shù)據(jù)的修改。在Docker里保存目前狀態(tài)的整個行為稱為托付,原理和虛擬機的快照功能相類似,Docker為了把保存修改后的容器與沒有保存的舊容器相區(qū)別,就會產(chǎn)生新的版本號??梢允褂胐ockerps -l命令來獲得容器的id,通過輸入命令:$docker commit 83ae boyan/centos:7.1,可以把這個鏡像保存在boyan下的centos:7.1文件。不需要拷貝完整的id,只需要開頭的三至四個字母就可以將其區(qū)分開。之后可以通過docker push命令,將某一個鏡像發(fā)布到官方的檢索網(wǎng)站,通過分享到類似的開源平臺,在一方面可以重新使用,在另一方面也可以分享該鏡像使用,達到再發(fā)行的目的,提高使用效率,也可以避免重復(fù)勞動。通過docker images命令就可以列出所有已經(jīng)安裝的鏡像。

5 調(diào)試和運行

5.1 拉取共享鏡像

在此前已經(jīng)安裝好的VMware 15 上創(chuàng)建第二臺虛擬機,配置與第一臺保持一致。在剛剛創(chuàng)建好的新虛擬機中安裝與之前相同的Linux系統(tǒng),在登錄之后就安裝Docker,安裝方法與之前虛擬機相同。新虛擬機創(chuàng)建好Docker后,拉取之前上傳好的鏡像文件,拉取回本地的鏡像文件的文件名應(yīng)與上傳時保持一致。[5]

5.2 檢測拉取鏡像的可用性

可以使用docker run命令來運行剛剛拉取的鏡像文件,讓其創(chuàng)建好docker的容器,創(chuàng)建好容器后,在這個容器中開始檢驗MySQL程序功能,以此來測試該容器的穩(wěn)定性與性能。

6 結(jié)束語

MySQL程序的成功運行,證明了系統(tǒng)運維的可行性。本篇文章通過創(chuàng)建鏡像,運行容器以及鏡像共享,成功驗證了Docker容器的輕量級特點和快速部署特點,展現(xiàn)了Docker類似于集裝箱和虛擬機的技術(shù)在運維平臺的搭建中廣泛的應(yīng)用前景。伴隨著互聯(lián)網(wǎng)時代的飛速發(fā)展,程序開發(fā)項目和運維項目的日益增多,快捷且方便地搭建運行環(huán)境必將成為未來的趨勢。Docker環(huán)境成功降低了開發(fā)人員的勞動強度,簡化了與測試人員以及維護工程師的配合,方便于集成環(huán)境中開展驗證和部署工作。目前Docker集中在linux系統(tǒng)上,在未來還需要考慮Docker在MAC OS 以及Windows系統(tǒng)中的應(yīng)用和安全共享,平臺移植,安全機制等方面的應(yīng)用。

參考文獻:

[1]易升海,彭江強,卿勇軍,伍琪.淺析Docker容器技術(shù)的發(fā)展前景[J].電信工程技術(shù)與標(biāo)準(zhǔn)化,2018.

[2]楊浚.淺析Docker的資源隔離和限制[J].科技尚品,2016.

[3]宋佳.云主機上Docker的搭建[J].求知,2018.

[4]周婧. 基于Docker技術(shù)的安全性研究綜述[J].商情,2016.

[5]張延冬,邢艷芳.基于Docker的運維平臺設(shè)計[J].計算機時代,2018.

【通聯(lián)編輯:王力】

猜你喜歡
云平臺容器服務(wù)器
Different Containers不同的容器
難以置信的事情
通信控制服務(wù)器(CCS)維護終端的設(shè)計與實現(xiàn)
中國服務(wù)器市場份額出爐
得形忘意的服務(wù)器標(biāo)準(zhǔn)
企業(yè)云平臺建設(shè)研究
計算機網(wǎng)絡(luò)安全服務(wù)器入侵與防御