91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

發布時間:2020-06-23 16:16:46 來源:網絡 閱讀:316 作者:wx5d30212829a35 欄目:編程語言

日常的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一起使用,正如本文演示的一樣非常簡單。

點擊獲取?附送學習進階架構資料、PDF書籍文檔、面試資料

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

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


向AI問一下細節

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

AI

永定县| 松潘县| 阿坝县| 滦平县| 清丰县| 绥宁县| 柳河县| 元朗区| 梁平县| 嵊州市| 綦江县| 阳曲县| 汉川市| 神木县| 惠安县| 曲靖市| 新民市| 乌兰察布市| 内黄县| 鹤庆县| 伊宁市| 武强县| 扎兰屯市| 浠水县| 兴山县| 益阳市| 金阳县| 施秉县| 小金县| 海南省| 柘荣县| 晋州市| 六枝特区| 永新县| 横峰县| 四子王旗| 邯郸县| 上林县| 阿城市| 宜昌市| 谢通门县|