容器化背景
現(xiàn)今越來(lái)越多的企業(yè)將docker運(yùn)用到自動(dòng)化運(yùn)維中,不管是為了保證開(kāi)發(fā)、測(cè)試、生產(chǎn)環(huán)境的環(huán)境一致性,還是和CI/CD工具的集成度,例如jenkins對(duì)docker或k8s的自動(dòng)構(gòu)建部署。
因?yàn)槿萜骶邆淙缦聝?yōu)點(diǎn):
靈活性:即使是最復(fù)雜的應(yīng)用程序也可以容器化。
輕量化:容器共享主機(jī)內(nèi)核,使得它們遠(yuǎn)比虛擬機(jī)高效。
便攜性:可以做到本地編譯,到處運(yùn)行。
松耦合:容器自我封裝,一個(gè)容器被替換或升級(jí)不會(huì)打斷別的容器。
安全性:容器對(duì)進(jìn)程進(jìn)行了嚴(yán)格的限制和隔離,而無(wú)需用戶(hù)進(jìn)行任何配置。
鏡像源概述
1.1 公共鏡像的優(yōu)點(diǎn)
聯(lián)網(wǎng)直接pull并使用,簡(jiǎn)便。
1.2 公共鏡像的缺點(diǎn)
1)dockerhub或國(guó)內(nèi)鏡像網(wǎng)站pull第三方鏡像,但由于審核并非嚴(yán)格,所以存在一些安全漏洞;
2)增加了不必要的程序,冗余度差。
示例:優(yōu)化鏡像后的大小為原先未優(yōu)化的大小的5倍,大大節(jié)省空間。
--Dockerhub上的最熱門(mén)的鏡像:
--沒(méi)有進(jìn)行優(yōu)化的鏡像,大小為629M:
--優(yōu)化后的鏡像,大小為126M:
2.1 私有鏡像的優(yōu)點(diǎn)
每個(gè)企業(yè)或個(gè)人使用容器,都是應(yīng)對(duì)不同的業(yè)務(wù)場(chǎng)景,沒(méi)有完全一致的業(yè)務(wù)場(chǎng)景,自己制作的鏡像最能滿(mǎn)足自己的要求,節(jié)省資源成本,安全性高。
2.2 私有鏡像的缺點(diǎn)
制作流程復(fù)雜,可重用性低,按需定制。
合格鏡像的特點(diǎn)
選擇Alpine鏡像代替Ubuntu、CentOS、Debian等鏡像從圖中對(duì)比可看出centos的大小遠(yuǎn)大于Alpine,那么我們?cè)谶x擇基礎(chǔ)鏡像時(shí)選用Alpine時(shí)就會(huì)減少相應(yīng)的體積。
每執(zhí)行一條Dockerfile中的指令,就會(huì)提交一次修改,這次修改會(huì)保存成一個(gè)只讀層掛載到聯(lián)合文件系統(tǒng)所以在編寫(xiě)Dockerfile時(shí),我們可以根據(jù)實(shí)際情況去合并一些指令,比如我們?cè)诎惭bjdk,tomcat時(shí),解壓、編譯、安裝以及刪除源文件的指令可以放在一起,以減少最終的鏡像層,也可以通過(guò)壓縮來(lái)減少層級(jí)但不一定好用。
在dockerfile構(gòu)造鏡像的時(shí)候總會(huì)有一些日志文件或者緩存的輸出(tomcat的webapps掛載到主機(jī)不占用鏡像的容量),將這些文件掛載或者直接刪除。
在鏡像的構(gòu)建過(guò)程中,Docker根據(jù)Dockerfile指定的順序執(zhí)行每個(gè)指令。在執(zhí)行每條指令之前,Docker都會(huì)在緩存中查找是否已經(jīng)存在可重用的鏡像,如果有就使用現(xiàn)存的鏡像,不再重復(fù)創(chuàng)建,而鏡像層多可重用的機(jī)會(huì)就越多,整體鏡像部署時(shí)也不用上傳全部鏡像。
優(yōu)化鏡像的示例
--創(chuàng)建容器查看是否成功運(yùn)行。
--調(diào)用jre8的鏡像作為基礎(chǔ)鏡像拷貝tomcat源碼包并編寫(xiě)環(huán)境變量。
--構(gòu)建成功。
--運(yùn)行tomcat_v2 映射端口為8999:
--登錄查看到網(wǎng)頁(yè),成功制作鏡像并運(yùn)行:
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/129574.html
摘要:接下來(lái)我們將逐步的減少這個(gè)鏡像的體積。優(yōu)化生產(chǎn)環(huán)境鏡像使用鏡像大幅減小鏡像體積的最簡(jiǎn)單和最快的方法是選擇一個(gè)小得多的基本鏡像。使用多階段構(gòu)建可以充分利用鏡像的緩存,大大減少最終部署到生產(chǎn)環(huán)境的時(shí)間。 關(guān)注作者github每日一道面試題詳解 你討厭部署你的應(yīng)用程序花費(fèi)很長(zhǎng)時(shí)間嗎? 對(duì)于單個(gè)容器來(lái)說(shuō),超過(guò)gb并不是最佳實(shí)踐。每次部署新版本時(shí)都要處理數(shù)十億字節(jié),這對(duì)我們來(lái)說(shuō)并不太合適。 本文...
摘要:系列文章第五篇中介紹了線(xiàn)上生產(chǎn)環(huán)境使用集群,這篇文章對(duì)原來(lái)的架構(gòu)進(jìn)行了優(yōu)化,同時(shí)使用了最新的一些特性,記錄一些流水賬。配置文件鑒于上次搭建時(shí)配置文件管理混亂,這次做了統(tǒng)一規(guī)劃為每個(gè)環(huán)境創(chuàng)建不同的配置文件,可以以環(huán)境名后綴。刪除無(wú)用的容器。 系列文章第五篇中介紹了線(xiàn)上生產(chǎn)環(huán)境使用 Docker 集群,這篇文章對(duì)原來(lái)的架構(gòu)進(jìn)行了優(yōu)化,同時(shí)使用了 Docker 最新的一些特性,記錄一些流水賬...
摘要:修改配置文件在的配置文件最后一行的末尾添加,添加完之后的配置為重啟服務(wù)重啟的命令如下。修改后的結(jié)果如下啟動(dòng)服務(wù)刪除源文件以上就是儲(chǔ)存的優(yōu)化方案,希望對(duì)您能夠有所幫助,更好的使用容器技術(shù)。 各位同學(xué),大家在使用Docker的過(guò)程中,有沒(méi)有想過(guò),Docker在本地存儲(chǔ)鏡像時(shí)把文件存儲(chǔ)在哪里了呢?有沒(méi)有對(duì)文件的總大小做一定的限制呢?能不能調(diào)整本地存儲(chǔ)的位置及總限制大小呢?今天,我們就從這些問(wèn)...
摘要:最終疊加在一起成為新的鏡像。優(yōu)化的方法就是使用和換行符將多條語(yǔ)句合并成一條執(zhí)行。第一點(diǎn),所有指令在中需要大寫(xiě),從而和具體的操作命令區(qū)分開(kāi)來(lái)。第二點(diǎn),對(duì)于過(guò)長(zhǎng)的指令請(qǐng)合理使用換行符,從而增加的可閱讀性。 前言 有一定旅行經(jīng)驗(yàn)的朋友都知道,即使在出發(fā)前制定了詳細(xì)的出行計(jì)劃,也會(huì)在路途中因?yàn)楦魇礁鳂拥臓顩r而不得不重新修改計(jì)劃。這個(gè)狀況在我們編寫(xiě)Dockerfile時(shí)一樣存在?;?0分鐘編寫(xiě)...
摘要:看下?tīng)顟B(tài)可以看到我已經(jīng)有一些鏡像了我已經(jīng)刪除了拉鏡像正常即可,中間那段是中國(guó)鏡像源,我們成功下來(lái)了的鏡像。攻破像我這樣屌絲的服務(wù)器一般都買(mǎi)的,大的資源文件不住,一個(gè)動(dòng)輒的文件這很蛋疼,不上很難受。 4000字長(zhǎng)文,多圖預(yù)警?。?!流量慎入??! 性能優(yōu)化 - 屌絲前端性能優(yōu)化、上線(xiàn)一條龍 大家好我又來(lái)了,本章給大家?guī)?lái)的內(nèi)容是:上線(xiàn)和上線(xiàn)后的性能優(yōu)化 項(xiàng)目地址 實(shí)戰(zhàn)預(yù)覽地址 實(shí)戰(zhàn)項(xiàng)目地址...
閱讀 1356·2023-01-11 13:20
閱讀 1707·2023-01-11 13:20
閱讀 1215·2023-01-11 13:20
閱讀 1906·2023-01-11 13:20
閱讀 4165·2023-01-11 13:20
閱讀 2757·2023-01-11 13:20
閱讀 1402·2023-01-11 13:20
閱讀 3671·2023-01-11 13:20