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