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