中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

詳解如何將Spring Boot應用跑在Docker容器中

發布時間:2020-10-13 20:29:07 來源:腳本之家 閱讀:220 作者:java互聯網架構 欄目:編程語言

日常的Rest服務開發我都會首選SpringBoot,因為它本身的易用性以及自帶的各種方便功能、生態等,今天就簡單講一下如何將Spring Boot應用跑在Docker容器中

項目搭建

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

詳解如何將Spring Boot應用跑在Docker容器中

這里寫一個簡單的接口:

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

然后運行下面的命令驗證服務是否正常:

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

容器化

下面我們就開始容器化這個簡單的Spring Boot應用

創建Dockerfile文件

首先在項目的根目錄創建一個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 
#容器啟動的時候運行Jar文件 
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"] 

構建鏡像

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

docker build -t demo8 . 

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

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 

運行鏡像

到這一步構建完成后,我們就順利的開始運行:

docker run -d -p 4000:8080 demo8 

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

± % curl localhost:4000/hello 
Hello World% 

我們看到這里是將4000端口映射到了容器中的8080端口,我們進入容器看一下驗證一下:

± % 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 

總結

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

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

孝义市| 昌平区| 河间市| 吴旗县| 乌拉特后旗| 佛教| 视频| 会泽县| 天长市| 福贡县| 大田县| 江川县| 工布江达县| 聊城市| 姚安县| 新河县| 马鞍山市| 宁明县| 阿荣旗| 建德市| 泌阳县| 米泉市| 巍山| 七台河市| 新宁县| 长宁县| 荔浦县| 合江县| 闽侯县| 临西县| 班戈县| 恩施市| 邹城市| 子长县| 焦作市| 常熟市| 英超| 平武县| 繁峙县| 南木林县| 通山县|