日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
如何將SpringBoot應(yīng)用跑在Docker容器中

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

成都創(chuàng)新互聯(lián)公司專注于企業(yè)成都全網(wǎng)營銷、網(wǎng)站重做改版、三亞網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、H5建站、商城建設(shè)、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為三亞等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。

項目搭建

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

這里寫一個簡單的接口:

 
 
 
  1. @RestController
  2. @SpringBootApplication
  3. public class DemoApplication {
  4.  
  5.     @GetMapping("/hello")
  6.     public String hello() {
  7.         return "Hello World";
  8.     }
  9.  
  10.     public static void main(String[] args) {
  11.         SpringApplication.run(DemoApplication.class, args);
  12.     }
  13. }

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

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

容器化

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

創(chuàng)建Dockerfile文件

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

 
 
 
  1. From java:8
  2.  
  3.  
  4. VOLUME /tmp
  5.  
  6. #將打包好后的Jar文件放到image中
  7. Add target/demo-0.0.1-SNAPSHOT.jar app.jar
  8. # change file access and modification times
  9. RUN bash -c 'touch /app.jar'
  10.  
  11. EXPOSE 8080
  12. #容器啟動的時候運(yùn)行Jar文件
  13. ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

構(gòu)建鏡像

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

 
 
 
  1. docker build -t demo8 .

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

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

運(yùn)行鏡像

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

 
 
 
  1. docker run -d -p 4000:8080 demo8

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

 
 
 
  1. ± % curl localhost:4000/hello 
  2. Hello World%

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

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

總結(jié)

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


網(wǎng)站標(biāo)題:如何將SpringBoot應(yīng)用跑在Docker容器中
網(wǎng)站URL:http://www.dlmjj.cn/article/dpgdopg.html