您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關Spring Boot應用Docker化的示例分析的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
概述
Spring Boot簡化了Spring應用的開發過程,遵循約定優先配置的原則提供了各類開箱即用(out-of-the-box)的框架配置。另一方面,Spring Boot還具備將代碼直接構建為可執行jar包的能力,這個jar包是一個可以獨立運行的部署單元。基于以上特性,現在普遍認為Spring Boot提供了一種快速構造微服務(Micro-Service)的能力。
當下web服務端開發中最火的名詞中絕對有微服務的一席之地,其也成為當下互聯網后端服務架構演進歷程中最閃亮的技術之一。微服務的基本思想在于考慮圍繞著業務領域組件來創建應用,這些應用可獨立地進行開發、管理和加速。在分散的組件中使用微服務云架構和平臺,使部署、管理和服務功能交付變得更加簡單。既然服務被分割和微小化了,我們很容易想到如果將其和docker結合,讓docker承載著一個個的微服務運行,如此一來將會讓服務間耦合度降低,部署簡潔,同時系統的架構也更加清晰,便于長期演進。
創建基于maven的spring bt項目
pom.xml中加依賴:
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.0.RELEASE</version> </parent> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies>
我們只需要在啟動類中添加一個簡單的restful接口就行了,為了后續瀏覽器能驗證一下,訪問/hello接口,能向瀏覽器返回一個 Hello Docker!的問好!
@RestController public class DockerDemoSpringApplication { public static void main(String[] args) { SpringApplication.run(DockerDemoSpringApplication.class, args); } @RequestMapping("/hello") public String hello(){ return "Hello! Docker!”; } }
編寫Dockerfile
我們在Spring Bt項目的根目錄下建立Dockerfile,用起來完成Docker鏡像構建的編排:
FROM maven:3.3.3 ADD pom.xml /tmp/build/ RUN cd /tmp/build && mvn -q dependency:resolve ADD src /tmp/build/src #構建應用 RUN cd /tmp/build && mvn -q -DskipTests=true package \ #拷貝編譯結果到指定目錄 && mv target/*.jar /app.jar \ #清理編譯痕跡 && cd / && rm -rf /tmp/build VOLUME /tmp EXPOSE 8080 ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar”]
進入Docker的世界
0x01. 在Spring項目根目錄下根據Dockerfile來生成docker鏡像
docker build -t springindocker .
0x02. 從剛創建的鏡像來啟動容器
docker run -d -p 8080:8080 springindocker
0x03. 打開瀏覽器,或者使用 curl 訪問http://127.0.0.1:8080就可以看到web服務器里返回的Hello Docker!!!問好的字符了
至此就說明你成功將一個基于 Spring Boot 的應用 Docker 化了。
本文雖然只是以一個Demo,但一個大型的web項目無非也就是由諸多這種Rest服務,外加各種基礎設施、數據庫、通信、中間件以及調度來構成,每個子元素的開發也依然遵循這里的基本流程。
感謝各位的閱讀!關于“Spring Boot應用Docker化的示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。