精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

優化Docker中的Spring Boot應用:單層鏡像方法

開源
在進行迭代開發和部署時,如何采用更有效的方法為Spring Boot應用程序構建Docker鏡像。 為Spring Boot應用程序構建Docker鏡像的標準方法有一些缺點,因此在這里我們要介紹如何做得更好。

[[319193]]

 文介紹了如何使用Docker中的一些關鍵概念和結構組件來優化Spring Boot應用程序。

Docker功能強大且易于使用。Docker允許開發人員研制的軟件創建可移植的鏡像。這些鏡像可重復地部署。你可以很容易地從Docker中獲得很多價值,但是要從Docker中獲得最大的價值,需要理解一些概念。在進行持續集成和持續交付時,如何構建Docker鏡像具有重要的作用。在本文中,我將重點介紹:

  • 在進行迭代開發和部署時,如何采用更有效的方法為Spring Boot應用程序構建Docker鏡像。
  • 為Spring Boot應用程序構建Docker鏡像的標準方法有一些缺點,因此在這里我們要介紹如何做得更好。

Docker關鍵概念

Docker有四個關鍵概念:images, layers, Dockerfile 和 Docker cache 。簡而言之,Dockerfile描述了如何構建Docker鏡像。鏡像由許多層組成。Dockerfile從基礎鏡像開始,并添加了其他層。當新內容添加到鏡像時,將生成一個新層。所構建的每個層都被緩存,因此可以在后續構建中重復使用。當Docker構建運行時,它可以從緩存中獲取重復使用任何已有層。這就減少了每次構建所需的時間和空間。任何已更改或以前尚未構建的內容都將根據需要進行構建。

 

 

 

 

Docker更新頻率

鏡像層內容很重要

鏡像各層的重要性。Docker緩存中的現有層,只有當改鏡像層內容沒有變更時,才能被使用。在Docker構建期間更改的層越多,Docker需要執行更多的工作來重建鏡像。鏡像層順序也很重要。如果某個圖層的所有父圖層均未更改,則該圖層就能被重用。因此,最好把比較頻繁更改的圖層放在上面,以便對其更改會影響較少的子圖層。鏡像層的順序和內容很重要。當你把應用程序打包為Docker鏡像時,最簡單的方法是將整個應用程序放置到一個單獨的鏡像層中。但是,如果該應用程序包含大量靜態庫依賴,那么即使更改很少的代碼,也需要重新構建整個鏡像層。這就需要在Docker緩存中,花費大量構建時間和空間。

鏡像層影響部署

部署Docker鏡像時,鏡像層也很重要。在部署Docker鏡像之前,它們會被推送到Docker遠程倉庫。該倉庫是所有部署鏡像的源頭,并且經常包含同一鏡像的許多版本。Docker非常高效,每個層僅存儲一次。但是,對于頻繁部署且具有不斷重建的大體積層的鏡像,這就不行了。大體積層的鏡像,即使內部只有很少的更改,也必須單獨存儲在倉庫中并在網絡中推送。因為需要移動并存儲不變的內容,這就會增加部署時間,

Docker中的Spring Boot應用

使用uber-jar方法的Spring Boot應用程序本身就是獨立的部署單元。該模型非常適合在虛擬機或構建包上進行部署,因為該應用程序可帶來所需的一切。但是,這對Docker部署是一個缺點:Docker已經提供了打包依賴項的方法。將整個Spring Boot JAR放入Docker鏡像是很常見的,但是,這會導致Docker鏡像的應用程序層中的不變內容太多。

 

 

 

 

Java SpringBoot單層

Spring社區中正在進行有關減少運行Spring Boot應用程序時的部署大小和時間的討論,尤其是在Docker中。在我看來,這最終是在簡單性與效率之間進行權衡。為Spring Boot應用程序構建Docker鏡像的最常見方法是我所說的“單層”方法。從技術上講,這不是正確的,因為Dockerfile實際上創建了多個層,但是對于討論來說已經足夠了。

單層方法

讓我們看一下單層方法。單層方法快速,簡單,易于理解和使用。Docker的Spring Boot指南 列出了單層Dockerfile來構建你的Docker鏡像:

 

  1. FROM openjdk:8-jdk-alpine 
  2. VOLUME /tmp 
  3. ARG JAR_FILE 
  4. COPY ${JAR_FILE} app.jar 
  5. ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"

它的最終結果是一個正常運行的Docker鏡像,其運行方式與你期望Spring Boot應用程序運行的方式完全相同。但是,由于它基于整個應用程序JAR,因此存在分層效率問題。隨著應用程序源的更改,整個Spring Boot JAR都會被重建。下次構建Docker鏡像時,將重新構建整個應用程序層,包括所有不變的依賴庫。讓我們看一個具體的例子, Spring Pet Clinic。

更深入地研究單層方法

單層方法使用Open Boot JDK基礎鏡像之上的Spring Boot JAR作為Docker層構建Docker鏡像:

 

  1. $ docker images 
  2. REPOSITORY                    TAG         IMAGE ID            CREATED             SIZE 
  3. springio/spring-petclinic     latest      94b0366d5ba2        16 seconds ago      140MB 

生成的Docker鏡像為140 MB。你可以使用docker history 命令檢查圖層 。你可以看到Spring Boot應用程序JAR已復制到鏡像中,大小為38.3 MB。

 

  1. $ docker history springio/spring-petclinic 
  2. IMAGE               CREATED             CREATED BY                                      SIZE                COMMENT 
  3. 94b0366d5ba2        52 seconds ago      /bin/sh -c #(nop)  ENTRYPOINT ["java" "-Djav…   0B 
  4. 213dff56a4bd        53 seconds ago      /bin/sh -c #(nop) COPY file:d3551559c2aa35af…   38.3MB 
  5. bc453a32748e        6 minutes ago       /bin/sh -c #(nop)  ARG JAR_FILE                 0B 
  6. 7fe0bb0d8026        6 minutes ago       /bin/sh -c #(nop)  VOLUME [/tmp]                0B 
  7. cc2179b8f042        8 days ago          /bin/sh -c set -x  && apk add --no-cache   o…   97.4MB 
  8. <missing>           8 days ago          /bin/sh -c #(nop)  ENV JAVA_ALPINE_VERSION=8…   0B 
  9. <missing>           8 days ago          /bin/sh -c #(nop)  ENV JAVA_VERSION=8u151       0B 
  10. <missing>           8 days ago          /bin/sh -c #(nop)  ENV PATH=/usr/local/sbin:…   0B 
  11. <missing>           8 days ago          /bin/sh -c #(nop)  ENV JAVA_HOME=/usr/lib/jv…   0B 
  12. <missing>           8 days ago          /bin/sh -c {   echo '#!/bin/sh';   echo 'set…   87B 
  13. <missing>           8 days ago          /bin/sh -c #(nop)  ENV LANG=C.UTF-8             0B 
  14. <missing>           5 months ago        /bin/sh -c #(nop)  CMD ["/bin/sh"]              0B 
  15. <missing>           5 months ago        /bin/sh -c #(nop) ADD file:093f0723fa46f6cdb…   4.15MB 

下次構建Docker鏡像時,將重新創建整個38 MB的層,因為重新打包了JAR文件。在此示例中,應用程序的大小相對較小(因為僅基于spring-boot-starter-web和其他依賴項,例如spring-actuator)。在實際開發中,這些大小通常要大得多,因為它們不僅包括Spring Boot庫,還包括其他第三方庫。根據我的經驗,實際的Spring Boot應用程序的大小范圍可能在50 MB到250 MB之間(如果不是更大的話)。仔細觀察該應用程序,應用程序JAR中只有372 KB是應用程序代碼。其余38 MB是依賴庫。這意味著實際上只有0.1%的層在變化。其余99.9%不變。

鏡像層生命周期

這是基于鏡像層的基本考慮:內容的生命周期。鏡像層的內容應具有相同的生命周期。Spring Boot應用程序的內容有兩個不同的生命周期:不經常更改的依賴庫和經常更改的應用程序類。每次由于應用程序代碼更改而重建該層時,也會包含不變的二進制文件。在快速的應用程序開發環境中,不斷更改和重新部署應用程序代碼,這種附加成本可能變得非常昂貴。想象一個應用團隊在Pet Clinic上進行迭代。團隊每天更改和重新部署應用程序10次。這10個新層的成本為每天383 MB。如果使用更多實際大小,則每天最多可以達到2.5 GB或更多。最終將浪費大量的構建時間,部署時間和Docker倉庫空間。快速迭代的開發和交付是決定我們是繼續使用簡單的單層方法,還是采用更有效的替代方法。

擁抱Docker,進入雙層

在簡單性和效率之間進行權衡時,我認為正確的選擇是“雙層”方法。(可以有更多的層,但是太多的層可能有害,并且違反了 Docker最佳實踐)。在雙層方法中,我們構建Docker鏡像,以使Spring Boot應用程序的依賴庫,存在于應用程序代碼下方的一層中。這樣,各層將遵循內容的不同生命周期。通過將不經常更改的依賴庫推入一個單獨的層,并僅將應用程序類保留在頂層,那么迭代重建和重新部署就會更快。

 

 

 

 

Java Spring Boot雙層

雙層方法加快了迭代開發的速度,并最大程度地縮短了部署時間。當然實際效率因應用程序而異,但是平均而言,這將使應用程序部署大小減少90%,同時相應地縮短了部署周期。

在本系列的下一篇文章“ 為Spring Boot應用程序創建雙層Docker鏡像”中,我將介紹如何在Open Liberty項目中使用新工具為Spring Boot應用程序構建雙層Docker鏡像。

譯者:王延飛原文鏈接:https://dzone.com/articles/optimizing-spring-boot-application-for-docker

責任編輯:武曉燕 來源: K8S中文社區
相關推薦

2023-12-02 18:32:32

SpringDocker鏡像

2020-11-12 07:51:05

DockerSpring Boot應用

2020-08-23 11:52:10

Docker容器技術

2019-07-15 16:00:24

Docker架構容器

2019-07-15 10:00:53

DockerJava容器

2023-10-25 18:08:13

應用容器化Docker

2024-09-30 11:51:07

2025-06-19 09:53:30

Spring性能優化服務器

2020-11-16 09:05:08

Docker架構容器

2024-01-15 08:59:31

Docker優化

2024-09-09 05:30:00

數據庫Spring

2022-10-11 14:58:00

性能優化Java

2017-09-20 09:46:38

Spring BootSpring Clou內存

2023-11-29 07:34:05

Spring工具類項目

2024-07-26 07:59:25

2024-10-07 08:40:56

Spring應用程序Java

2021-05-07 07:03:33

Spring打包工具

2020-10-18 08:51:18

Spring Boot

2022-06-28 15:04:32

容器Docker

2022-06-28 15:06:35

容器Spring
點贊
收藏

51CTO技術棧公眾號

欧美在线播放高清精品| 国产盗摄女厕一区二区三区 | 久久久噜噜噜久久久| 黄色性生活一级片| 伊人久久大香线蕉综合影院首页| 亚洲不卡一区二区三区| 色婷婷精品国产一区二区三区| 99在线小视频| 日韩电影在线一区二区三区| 欧美激情一区二区三区久久久 | 午夜久久久久久电影| 亚洲蜜桃在线| 青青草在线免费观看| 精品一区二区在线视频| 欧美中文在线观看国产| 亚洲国产成人精品综合99| 亚洲人成伊人成综合图片| 日韩一区二区三区电影| 亚洲欧美自拍另类日韩| 小视频免费在线观看| 亚洲精品乱码久久久久久久久| 日本电影一区二区三区| 色婷婷视频在线| 国产在线精品一区二区夜色| 日韩av免费在线看| 日产电影一区二区三区| 欧美在线首页| 久久精品99国产精品酒店日本| 国产精品无码网站| 一区二区在线视频观看| 欧美丰满少妇xxxbbb| 国产精品igao| 三级成人在线| 色综合天天在线| 91九色在线观看视频| 中文字幕中文字幕在线十八区| 中文字幕成人av| 欧美日韩国产一二| 婷婷开心激情网| 丰满少妇久久久久久久| 99国产在线观看| 国产国语亲子伦亲子| 久久精品久久99精品久久| 国产精品久久久久7777婷婷| 亚洲国产成人精品女人久久| 麻豆久久婷婷| 日韩av电影手机在线| 中文字幕在线观看视频网站| 午夜亚洲一区| 欧美在线视频播放| 东京热一区二区三区四区| 日韩亚洲国产精品| 97av在线视频| 亚洲精品视频在线观看免费视频| 99av国产精品欲麻豆| 668精品在线视频| 亚洲黄色激情视频| 久久久久国产精品一区三寸| 国产精品69精品一区二区三区| 高潮毛片又色又爽免费| 男人天堂欧美日韩| 国产精品久久久久久婷婷天堂| 久久影视中文字幕| 日韩福利电影在线观看| 成人免费xxxxx在线观看| 欧在线一二三四区| sese综合| 欧美亚洲一区二区在线| 午夜精品久久久久久久99热影院| 国产精品久久久久久久久久久久久久久 | 在线综合视频网站| 国内精品久久久久国产| 亚洲一区二区三区不卡国产欧美| 成人一区二区免费视频| 456亚洲精品成人影院| 欧美日韩一区二区三区在线| 亚洲图片 自拍偷拍| 中文字幕av一区二区三区四区| 亚洲精美色品网站| 国产成人精品无码免费看夜聊软件| 欧美日韩精品在线一区| 蜜臀久久99精品久久久久久宅男 | 国产伦精品一区二区三区免费视频| 五月婷婷丁香网| 国产香蕉久久精品综合网| 五码日韩精品一区二区三区视频| 激情视频在线观看| 亚洲成人精品一区二区| 黄色三级视频在线| 99re6热只有精品免费观看| 亚洲美女自拍视频| 任你操精品视频| 亚洲国产日本| 国产精品专区h在线观看| 亚洲国产精品suv| 久久精品视频一区二区| 欧美少妇一区二区三区| 色老太综合网| 日韩精品一区二区三区视频播放| 日本黄色特级片| 一区二区免费不卡在线| 日韩av电影中文字幕| 蜜桃视频在线观看www| 国产欧美va欧美不卡在线 | 三级不卡在线观看| 鬼打鬼之黄金道士1992林正英| 大乳在线免费观看| 亚洲一区二区三区四区不卡| 亚洲欧洲日本精品| 丝袜连裤袜欧美激情日韩| 久久精品久久久久电影| youjizz在线视频| 成人午夜伦理影院| 综合一区中文字幕| 国产综合色区在线观看| 精品区一区二区| 少妇高潮在线观看| 日本va欧美va精品| 麻豆av一区二区三区久久| 欧美韩日亚洲| 中文字幕中文字幕中文字幕亚洲无线| av高清在线免费观看| 日韩a∨精品日韩在线观看| 婷婷色在线资源| 欧美三级日韩三级| 黄色正能量网站| 国产主播精品| 99久久伊人精品影院| 日韩在线免费电影| 在线视频国内自拍亚洲视频| 在线观看国产三级| 亚洲福利国产| 国产成人一区二区三区免费看| 毛片在线视频| 欧美色视频一区| 亚洲精品国产91| 水野朝阳av一区二区三区| 精品网站在线看| heyzo中文字幕在线| 欧美videofree性高清杂交| 北条麻妃在线观看视频| 九色|91porny| 日韩第一页在线观看| 日韩午夜电影免费看| 中文字幕在线观看日韩| 一本到在线视频| 中文字幕一区二区三区不卡| 想看黄色一级片| 国产精品福利在线观看播放| 91久久久久久久| av在线网址观看| 欧美mv日韩mv亚洲| 国产午夜福利精品| 97精品国产露脸对白| 日韩avxxx| 国产一区二区三区不卡视频网站| 国产福利成人在线| 午夜激情视频在线观看| 91麻豆精品国产自产在线观看一区 | 日本wwwwwww| 136国产福利精品导航网址| 精品国产一二| 日本一区二区三区网站| 99福利在线| 91精品国产一区二区人妖| 日韩va亚洲va欧美va清高| www黄在线观看| 精品高清美女精品国产区| 一二三不卡视频| 奇米一区二区三区av| 在线观看国产一区| 日韩三级av高清片| 亚洲美女性生活视频| 亚洲av无码专区在线播放中文| 激情欧美丁香| 久久精品欧美| 欧美一级做一级爱a做片性| 欧美精品在线观看91| 午夜视频福利在线| 欧美揉bbbbb揉bbbbb| 久久久久久久蜜桃| 国产激情小视频在线| 亚洲成人精品久久久| 无码人妻久久一区二区三区| 中文字幕在线免费不卡| 中文字幕人妻一区| 视频在线观看一区| 欧洲精品视频在线| 亚洲国产国产| 成人在线视频福利| 毛片在线网站| 国产精品无码乱伦| 黄网站视频在线观看| 欧美精品一区二区三区蜜桃视频| 久久精品视频5| 中文字幕一区免费在线观看| 男女一区二区三区| 久久99精品久久久久久久久久久久| 久久99久久久久久| 久久中文字幕av一区二区不卡| 国产欧美一区二区三区另类精品| 8av国产精品爽爽ⅴa在线观看| 久久久成人的性感天堂| 欧美一区二区三区成人片在线| 欧美三区在线视频| 日韩三级视频在线| 亚洲美女免费在线| 日本一级免费视频| 99re热视频精品| 中国老熟女重囗味hdxx| 久久久久免费| 欧美午夜性视频| 亚洲天天影视网| 色一情一乱一伦一区二区三区| 国偷自产av一区二区三区| 91精品中文在线| 欧美大胆成人| 欧美精品福利在线| 1314成人网| 亚洲成人中文| 亚洲 日韩 国产第一区| 日韩高清成人在线| 国产伦精品一区二区三区高清版| 欧美经典影片视频网站| 国产精品丝袜视频| 成人精品电影在线| 青草青草久热精品视频在线网站| 国产精品一品| 欧美日本在线视频中文字字幕| 伦xxxx在线| 日韩中文在线中文网在线观看| 欧美日韩伦理片| 日韩电影中文字幕在线观看| 日本黄色免费视频| 精品国产91乱码一区二区三区| 国产成人精品免费看视频| 欧美日韩视频不卡| 亚洲一级av毛片| 欧美男人的天堂一二区| 岳乳丰满一区二区三区| 欧美日韩国产首页| 中文字幕 自拍偷拍| 欧美在线看片a免费观看| 懂色av中文字幕| 欧美午夜电影在线播放| 国产99久久久久久免费看| 91黄色在线观看| 国产精品无码一区| 欧美日韩三级一区| 91麻豆一区二区| 91精品欧美久久久久久动漫| 国产偷拍一区二区| 日韩精品一区二区三区四区 | 国产精品一区免费视频| 亚洲综合伊人久久| 国产精品一卡二| 国产伦精品一区三区精东| 久久综合色综合88| 中文字幕av久久爽一区| 国产精品久线在线观看| 黄视频网站免费看| 一个色综合网站| 男人的天堂一区二区| 在线看不卡av| 国产精品久久久久久免费| 日韩欧美高清一区| 青青草手机在线| 精品国产视频在线| 黑人玩欧美人三根一起进| 欧美有码在线观看| 日本国产一区| 国产成人精品日本亚洲11| 久操国产精品| 一本—道久久a久久精品蜜桃| 欧美久久99| 1024精品视频| 国产真实精品久久二三区| 性色av蜜臀av浪潮av老女人 | 欧美黄片一区二区三区| 舔着乳尖日韩一区| 最近中文字幕免费在线观看| 日韩免费在线观看| 免费理论片在线观看播放老| 久久精品小视频| 碰碰在线视频| 成人性生交大片免费看小说 | 日日噜噜噜夜夜爽亚洲精品 | 欧美日韩在线精品一区二区三区激情 | 亚洲一区二区三区高清| 亚洲免费999| 99久久精品国产麻豆演员表| 日日操免费视频| 五月激情丁香一区二区三区| 中文字幕视频二区| 亚洲第一福利视频| 日本亚洲精品| 欧美中文在线字幕| 亚洲精品在线国产| 午夜视频久久久| 一区二区三区四区五区在线 | 精品国模一区二区三区欧美| 欧美精品v日韩精品v国产精品| 欧美va天堂在线| 黄色永久免费网站| 91网站最新网址| 久久久夜色精品| 在线播放视频一区| 黄色片在线看| 26uuu另类亚洲欧美日本一| 久久久久久久久成人| 性欧美精品一区二区三区在线播放| 国产欧美日韩综合一区在线播放| 国模大尺度视频| 中文字幕一区二区三区蜜月| 欧美精品一二三四区| 亚洲国产成人在线视频| av免费网站在线| 国产日韩精品综合网站| 国产成人久久| 欧美精品99久久| 99久久精品免费看| 欧美日韩亚洲国产另类| 欧美剧情片在线观看| www日韩tube| 国产成人精品视频在线| 亚洲欧美日本伦理| 午夜免费福利小电影| 成人精品鲁一区一区二区| 久久网一区二区| 日韩欧美中文字幕一区| 顶级网黄在线播放| 91精品在线观| 亚洲最大av| 在线免费黄色小视频| 亚洲人妖av一区二区| 国产精品爽爽久久久久久| 日韩中文字幕不卡视频| va天堂va亚洲va影视| 一区二区三区不卡在线| 久久66热re国产| 亚洲色图日韩精品| 欧美日韩高清在线播放| 麻豆传媒在线观看| 91久久久久久| 欧美日韩国产成人精品| 中文字幕18页| 午夜精品影院在线观看| 欧美亚洲日本| 国产精品91久久久| 日韩在线欧美| 天天干天天曰天天操| 亚洲一区二区三区四区的| 好男人在线视频www| 97精品久久久中文字幕免费| 牲欧美videos精品| 日韩一级免费在线观看| 亚洲国产精品精华液ab| 一区二区日韩视频| 欧美猛交免费看| 久久aimee| av丝袜天堂网| 亚洲欧洲国产专区| 成人久久久精品国产乱码一区二区| 97激碰免费视频| 国产一区网站| 亚洲最大天堂网| 亚洲成av人片| 91看片在线观看| 91精品国产99久久久久久红楼| 亚洲激情不卡| 在线视频第一页| 欧美一级日韩一级| 国产高潮在线| 伊人久久大香线蕉午夜av| 国产乱国产乱300精品| 国产香蕉视频在线| 中文字幕欧美专区| 日韩欧美久久| 国产精品wwwww| 亚洲色图.com| 色播色播色播色播色播在线| 91精品国产自产在线观看永久| 在线看片一区| 在线观看天堂av| 亚洲国产另类 国产精品国产免费| 日韩一区二区三区在线免费观看 | 欧美不卡福利| 国产在线观看免费一区| 天堂中文在线网| 欧美成人sm免费视频| 宅男在线一区| 国产精品91av| 欧美日韩精品欧美日韩精品一| 岛国毛片av在线| 亚洲一区高清| 久久免费电影网| 亚洲精品国产手机| 国产日韩精品电影| 免费看的黄色欧美网站| 麻豆成人在线视频|