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

?

Docker容器生命周期與項目部署關(guān)系研究

2021-11-29 12:11王偉
魅力中國 2021年8期

王偉

(北京信息職業(yè)技術(shù)學(xué)院,北京 100000)

一、Docker容器的生命周期

Docker容器從創(chuàng)建、保存、運(yùn)行要經(jīng)歷三個階段。

Dockerfile:用于創(chuàng)建image鏡像的模板文件,出于管理和安全的考慮,docker官方建議所有的鏡像文件應(yīng)該由dockerfile來創(chuàng)建,而當(dāng)前不少用戶把docker當(dāng)虛擬機(jī)來使用,甚至容器中安裝SSH,從安全的角度,這是不恰當(dāng)?shù)摹?/p>

-Image:鏡像文件,對比PC端的概念,我們可以把它理解為服務(wù)器端的可執(zhí)行軟件包。一旦打包生成,如存在安全問題,那這些問題也被一并打包,最后導(dǎo)致安全事件。

-Container:運(yùn)行起來的image文件就是容器了,從外來看就是一個應(yīng)用,可對外提供服務(wù)了。

所以不難發(fā)現(xiàn),docker容器的生命周期,就是一個鏡像文件從產(chǎn)生、運(yùn)行到停止的過程,對其安全防護(hù)的目標(biāo)就很明確了,那就是:Docker安全防護(hù)本質(zhì)上是保證docker鏡像在創(chuàng)建、存儲、傳輸、運(yùn)行過程中的安全。

二、項目部署過程

項目開發(fā)完成后,我們往往需要將項目部署到對應(yīng)的服務(wù)器上,進(jìn)行上線運(yùn)行。這個過程一般是由企業(yè)的運(yùn)維人員來完成,也有的開發(fā)人員自己完成的。以Web項目為例,簡單介紹一下項目部署的過程。

(一)首先需要維護(hù)操作系統(tǒng)

操作系統(tǒng)是項目運(yùn)行的基礎(chǔ),一般情況下服務(wù)器的操作系統(tǒng)的都是Linux的。所以首先我們需要安裝調(diào)試好Linux操作系統(tǒng),配置好系統(tǒng)防火墻,做好操作系統(tǒng)的安全防范設(shè)置。

(二)下載安裝JDK

JDK是Java的整個核心,包括了Java的運(yùn)行環(huán)境、Java的工具和Java的基礎(chǔ)類庫。

(三)下載安裝Tomcat

Tomcat服務(wù)器是一個免費的開放源代碼的Web應(yīng)用服務(wù)器,屬于輕量級應(yīng)用服務(wù)器,在中小型系統(tǒng)和并發(fā)訪問用戶不是很多的場合下被普遍使用,是開發(fā)和調(diào)試JSP程序的首選。所以在部署Java開發(fā)的Web項目,安裝Tomcat必不可少。

(四)下載安裝MySQL

MySQL是一種關(guān)系型數(shù)據(jù)庫管理系統(tǒng),關(guān)系數(shù)據(jù)庫將數(shù)據(jù)保存在不同的表中,而不是將所有數(shù)據(jù)放在一個大倉庫內(nèi),這樣就增加了速度并提高了靈活性。MySQL數(shù)據(jù)庫時中小型企業(yè)Web系統(tǒng)常用的數(shù)據(jù)庫管理系統(tǒng),它可以與PHP、Java、Prel、Python等語言很好的配合使用,實現(xiàn)數(shù)據(jù)管理服務(wù)。所以配置數(shù)據(jù)庫服務(wù)器也是必不可少的步驟。

(五)將項目文件上傳到指定文件目錄,數(shù)據(jù)庫文件導(dǎo)入數(shù)據(jù)庫服務(wù)器

將項目文件拷貝到或者上傳到系統(tǒng)服務(wù)器的指定文件夾目錄,并且將所需數(shù)據(jù)庫文件導(dǎo)入數(shù)據(jù)庫管理系統(tǒng)中,完成項目文件的部署工作。

(六)測試運(yùn)行

最后一步測試運(yùn)行,Web項目部署完成后,上線測試。

以上就是一個Web項目大致的部署流程,一般出現(xiàn)在項目開發(fā)完成,準(zhǔn)備上線測試的時候。開發(fā)和運(yùn)維需要經(jīng)歷這樣一個過程,一般情況下,開發(fā)人員在自己搭建的環(huán)境中進(jìn)行開發(fā),測試。當(dāng)開發(fā)完成后,需要將項目移植到項目服務(wù)器上。這個過程往往會耗費大量的時間和人力,給運(yùn)維和開發(fā)人員增加了工作量。使用Docker容器技術(shù)就是大大縮短了這個過程所需要的時間和配置過程。這也是Docker容器技術(shù)受到廣大開發(fā)和運(yùn)維人員青睞的原因之一。

三、Docker容器生命周期與項目部署過程相結(jié)合

把docker容器生命周期和實際工作中結(jié)合起來。

在一般企業(yè)內(nèi),一個標(biāo)準(zhǔn)的產(chǎn)品發(fā)布流程大致如下:研發(fā)人員將代碼提交給代碼庫;QA(質(zhì)保工程師)和安全人員通過jekins等工具進(jìn)行編譯并測試;測試完成后,由運(yùn)維人員獲取最終上線版本,發(fā)布到生產(chǎn)環(huán)境。也可能是測試完成后,直接發(fā)布到生產(chǎn)環(huán)境。

化繁為簡,可將docker生命周期拆為兩個大階段,非生產(chǎn)環(huán)境階段和生產(chǎn)環(huán)境階段,這兩個階段安全控制的目標(biāo)如下:非生產(chǎn)環(huán)境中保證鏡像安全可信,生產(chǎn)環(huán)境中保證鏡像正確的運(yùn)行。

在這兩個階段都面臨著不同的安全風(fēng)險,比如在非生產(chǎn)環(huán)境中我們要保障鏡像安全可以使用非root用戶身份運(yùn)行,如果用戶已經(jīng)在容器鏡像中定義,則默認(rèn)情況下容器將作為該用戶運(yùn)行,且不需要特定的用戶命名空間重新映射。在生產(chǎn)環(huán)境階段務(wù)必保證docker宿主機(jī)的安全,我們可以對宿主機(jī)的系統(tǒng)進(jìn)行安全加固處理,主機(jī)加固可以參考相關(guān)的安全checklist以及各企業(yè)制定的主機(jī)安全規(guī)范,在這里就不再贅述。

四、結(jié)論

結(jié)合Docker容器生命周期,編寫維護(hù)Dockerfile文件時期就是進(jìn)行項目運(yùn)行環(huán)境配置階段的工作,這個工作在前期就做好,就用每次部署都需要重新配置搭建項目運(yùn)行環(huán)境了。打包上傳Image時期就是將這個配置工作打包上傳存儲,便于移植,有需要的時候到鏡像倉庫進(jìn)行下載即可。容器的運(yùn)行維護(hù)時期,就是項目上線測試運(yùn)行階段。這樣就做到了容器的生命周期與項目生產(chǎn)運(yùn)行階段非常融洽地結(jié)合起來。三個階段還可以進(jìn)一步分成兩大階段,一個是非生產(chǎn)環(huán)境階段,包括Dockerfile編寫和Image鏡像生成上傳;另一個是生產(chǎn)環(huán)境階段,就是最后的項目測試上線運(yùn)維階段。

邳州市| 攀枝花市| 唐山市| 晋城| 遂平县| 阿克苏市| 信宜市| 黔南| 滕州市| 潞西市| 孟连| 大化| 容城县| 泗洪县| 义乌市| 杨浦区| 石狮市| 阿拉善左旗| 青浦区| 阿克| 蓬溪县| 泰和县| 斗六市| 河池市| 梨树县| 阿坝县| 宁城县| 徐闻县| 介休市| 资源县| 娱乐| 翼城县| 胶州市| 清涧县| 虎林市| 四会市| 西充县| 景德镇市| 长汀县| 武安市| 定结县|