最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解如何將Spring Boot應(yīng)用跑在Docker容器中

 更新時(shí)間:2019年07月16日 10:21:46   作者:java互聯(lián)網(wǎng)架構(gòu)  
這篇文章主要介紹了詳解如何將Spring Boot應(yīng)用跑在Docker容器中,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

日常的Rest服務(wù)開發(fā)我都會(huì)首選SpringBoot,因?yàn)樗旧淼囊子眯砸约白詭У母鞣N方便功能、生態(tài)等,今天就簡單講一下如何將Spring Boot應(yīng)用跑在Docker容器中

項(xiàng)目搭建

首先打開Idea,選擇初始化一個(gè)Spring Boot應(yīng)用,然后一路回車下去,待Idea下載完依賴,開始編碼


這里寫一個(gè)簡單的接口:

@RestController 
@SpringBootApplication 
public class DemoApplication { 
 
  @GetMapping("/hello") 
  public String hello() { 
    return "Hello World"; 
  } 
 
  public static void main(String[] args) { 
    SpringApplication.run(DemoApplication.class, args); 
  } 
} 

然后運(yùn)行下面的命令驗(yàn)證服務(wù)是否正常:

mvn clean package -Dmaven.test.skip=true 
java -jar target/demo-0.0.1-SNAPSHOT.jar 

容器化

下面我們就開始容器化這個(gè)簡單的Spring Boot應(yīng)用

創(chuàng)建Dockerfile文件

首先在項(xiàng)目的根目錄創(chuàng)建一個(gè)Dockerfile文件,主要不要搞成駝峰命名:

From java:8 
 
 
VOLUME /tmp 
 
#將打包好后的Jar文件放到image中 
Add target/demo-0.0.1-SNAPSHOT.jar app.jar 
# change file access and modification times 
RUN bash -c 'touch /app.jar' 
 
EXPOSE 8080 
#容器啟動(dòng)的時(shí)候運(yùn)行Jar文件 
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"] 

構(gòu)建鏡像

接下來就去構(gòu)建Docker鏡像,不過通常這一步都會(huì)用Jenkins的去做:

docker build -t demo8 . 

如果看到下面的輸出說明執(zhí)行成功了:

Sending build context to Docker daemon 14.84MB 
Step 1/6 : FROM java:8 
 ---> d23bdf5b1b1b 
Step 2/6 : VOLUME /tmp 
 ---> Using cache 
 ---> 91086d8b7c77 
Step 3/6 : ADD target/demo-0.0.1-SNAPSHOT.jar app.jar 
 ---> d161bed06e8b 
Step 4/6 : RUN bash -c 'touch /app.jar' 
 ---> Running in 9fbaff628989 
 ---> 1fc0498bbb06 
Removing intermediate container 9fbaff628989 
Step 5/6 : EXPOSE 8080 
 ---> Running in a5c44244b267 
 ---> 3b5150c5bdd0 
Removing intermediate container a5c44244b267 
Step 6/6 : ENTRYPOINT java -Djava.security.egd=file:/dev/./urandom -jar /app.jar 
 ---> Running in b7a3baac9d47 
 ---> 23ef7cc5e1b0 
Removing intermediate container b7a3baac9d47 
Successfully built 23ef7cc5e1b0 
Successfully tagged demo8:latest 

運(yùn)行鏡像

到這一步構(gòu)建完成后,我們就順利的開始運(yùn)行:

docker run -d -p 4000:8080 demo8 

然后curl一下剛才的接口看看是否正常:

± % curl localhost:4000/hello 
Hello World% 

我們看到這里是將4000端口映射到了容器中的8080端口,我們進(jìn)入容器看一下驗(yàn)證一下:

± % docker ps !10172 
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 
5f1b7f29a0b6 988ed6f466b5 "java -Djava.secur..." 29 minutes ago Up 29 minutes 0.0.0.0:4000->8080/tcp practical_jones 
± % docker exec -it 5f1b7f29a0b6 /bin/bash 
root@5f1b7f29a0b6:/ curl localhost:8080/hello 
Hello World 

總結(jié)

SpringBoot打包后直接生成一個(gè)可執(zhí)行的JAR包,天然就非常適合搭配Docker一起使用,正如本文演示的一樣非常簡單。

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Springboot基于enable模塊驅(qū)動(dòng)的實(shí)現(xiàn)

    Springboot基于enable模塊驅(qū)動(dòng)的實(shí)現(xiàn)

    這篇文章主要介紹了Springboot基于enable模塊驅(qū)動(dòng)的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • Java發(fā)送郵件遇到的常見需求匯總

    Java發(fā)送郵件遇到的常見需求匯總

    這篇文章主要介紹了Java發(fā)送郵件遇到的常見需求匯總的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2016-06-06
  • 詳解java.lang.reflect.Modifier.isInterface()方法

    詳解java.lang.reflect.Modifier.isInterface()方法

    這篇文章主要介紹了詳解java.lang.reflect.Modifier.isInterface()方法的相關(guān)資料,這里提供實(shí)例幫助大家理解這個(gè)方法的使用,需要的朋友可以參考下
    2017-09-09
  • Java四種常用線程池的詳細(xì)介紹

    Java四種常用線程池的詳細(xì)介紹

    今天小編就為大家分享一篇關(guān)于Java四種常用線程池的詳細(xì)介紹,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • java實(shí)現(xiàn)屏幕共享功能實(shí)例分析

    java實(shí)現(xiàn)屏幕共享功能實(shí)例分析

    這篇文章主要介紹了java實(shí)現(xiàn)屏幕共享功能的方法,以實(shí)例形式分析了屏幕共享功能的客戶端與服務(wù)端的詳細(xì)實(shí)現(xiàn)方法,是非常具有實(shí)用價(jià)值的技巧,需要的朋友可以參考下
    2014-12-12
  • Java Lock鎖多線程中實(shí)現(xiàn)流水線任務(wù)

    Java Lock鎖多線程中實(shí)現(xiàn)流水線任務(wù)

    這篇文章主要介紹了Java Lock鎖多線程中實(shí)現(xiàn)流水線任務(wù),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-05-05
  • Nacos配置中心搭建及動(dòng)態(tài)刷新配置及踩坑記錄

    Nacos配置中心搭建及動(dòng)態(tài)刷新配置及踩坑記錄

    這篇文章主要介紹了Nacos配置中心搭建及動(dòng)態(tài)刷新配置及踩坑記錄,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • java8 Math新增方法介紹

    java8 Math新增方法介紹

    這篇文章主要介紹了java8 Math新增方法介紹,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • java 如何計(jì)算同比增長工具類

    java 如何計(jì)算同比增長工具類

    這篇文章主要介紹了java 如何計(jì)算同比增長工具類的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • 最簡單的Spring Cloud教程第一篇:服務(wù)的注冊(cè)與發(fā)現(xiàn)(Eureka)

    最簡單的Spring Cloud教程第一篇:服務(wù)的注冊(cè)與發(fā)現(xiàn)(Eureka)

    這篇文章主要給大家介紹了關(guān)于Spring Cloud服務(wù)的注冊(cè)與發(fā)現(xiàn)(Eureka)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用spring cloud具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧。
    2017-08-08

最新評(píng)論

乌海市| 鄱阳县| 绩溪县| 陇西县| 武安市| 雷波县| 铜鼓县| 治多县| 灌阳县| 郎溪县| 兖州市| 灵石县| 土默特左旗| 南城县| 连州市| 宝坻区| 梅河口市| 紫阳县| 阳谷县| 辽宁省| 库伦旗| 牙克石市| 石城县| 舒城县| 邵东县| 玛曲县| 海城市| 通辽市| 类乌齐县| 噶尔县| 邯郸市| 元阳县| 湖南省| 屯门区| 天祝| 屏东市| 彰化县| 永兴县| 昌图县| 阳山县| 巴林左旗|