日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

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

新聞中心

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

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

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

項(xiàng)目搭建

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

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

 
 
 
  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

容器化

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

創(chuàng)建Dockerfile文件

首先在項(xiàng)目的根目錄創(chuàng)建一個(gè)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. #容器啟動(dòng)的時(shí)候運(yùn)行Jar文件
  13. ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

構(gòu)建鏡像

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

 
 
 
  1. docker build -t demo8 .

如果看到下面的輸出說(shuō)明執(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打包后直接生成一個(gè)可執(zhí)行的JAR包,天然就非常適合搭配Docker一起使用,正如本文演示的一樣非常簡(jiǎn)單。


文章題目:如何將SpringBoot應(yīng)用跑在Docker容器中
瀏覽地址:http://www.5511xx.com/article/dpgdopg.html