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

溫馨提示×

溫馨提示×

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

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

如何把SpringBoot應用打包成Docker鏡像并運行

發布時間:2021-12-13 15:48:28 來源:億速云 閱讀:251 作者:iii 欄目:服務器

本篇內容介紹了“如何把SpringBoot應用打包成Docker鏡像并運行”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

(1) 首先要有一個可以工作的SpringBoot應用。

從Jerry的github上clone這個github repository到本地:

如何把SpringBoot應用打包成Docker鏡像并運行

cd進入項目文件夾內,使用命令行mvn spring-boot:run

當看到控制臺輸出 Tomcat started on port: 5030(http)的提示后,說明SpringBoot應用在本地啟動成功,

如何把SpringBoot應用打包成Docker鏡像并運行

這時用下面的url可以訪問這個SpringBoot應用,如果一切正常,

http:///product

可以在瀏覽器里看到Hello World:

如何把SpringBoot應用打包成Docker鏡像并運行

注:該SpringBoot應用監聽的端口為5030,如果想修改成其他端口,在application.properties里修改。

如何把SpringBoot應用打包成Docker鏡像并運行

(2) 下一步是登錄阿里云服務器,將該SpringBoot打包成Docker鏡像。

我的github倉庫里已經寫好了一個Dockerfile文件,Docker鏡像就是基于該Dockerfile進行制作。

如何把SpringBoot應用打包成Docker鏡像并運行

第一行的FROM命令,指定了我們這個鏡像基于openjdk這個鏡像制作。

第二行的VOLUME命令,定義了一個持久化存儲,指向容器中的tmp文件夾。SpringBoot應用為內置的Tomcat服務器實例創建的默認工作目錄為tmp,通過該命令,可以在運行Docker的宿主機目錄/var/lib/docker創建一個臨時的目錄,掛接到容器內部的tmp去。

如果你的SpringBoot應用不會進行持久化寫操作,則該步驟可以省略。

第三行,把本地目錄下target文件夾里打好的jar文件添加到容器里,重命名為app.jar.

第四行:ENV命令的作用是設置環境變量。在復雜的使用場景中,我們可能需要使用各種參數啟動JVM,這些參數通過ENV命令設置的環境變量傳入Java命令。在這個簡單的例子里可以省略環境變量的設置。

第五行:ENTRYPOINT,顧名思義,容器鏡像運行的起始點。

了解了這個Dockerfile的作用和語法后,我們使用docker build基于這個Dockerfile生成一個鏡像。

> docker build -t jerry/springbootexample:v1 .

上面命令行最后的"."并不是表示結束的標點符號,而是Linux系統里的".", 代表當前目錄。

執行上述命令行后,會看到我們在Dockerfile里定義的5條命令被依次執行,首先是下載openJDK這個基礎鏡像:

如何把SpringBoot應用打包成Docker鏡像并運行

然后依次執行剩余步驟。

如何把SpringBoot應用打包成Docker鏡像并運行

看到Successfully built 提示消息后,說明該鏡像成功創建了。

使用docker images命令行能看到這個鏡像,大小為136MB.

如何把SpringBoot應用打包成Docker鏡像并運行

(3) 最后,就是使用docker run命令執行這個鏡像。

run命令有很多參數,比如以交互式方式運行鏡像:

> docker run -it jerry/springbootexample:v1

這種方式下,鏡像處理用戶請求時的輸出會自動重定向到宿主機的控制臺上。

而-p參數可以實現端口映射,下面命令行的含義是把Docker內SpringBoot應用監聽的端口映射到宿主機的8000端口。這樣,當用戶在瀏覽器里訪問時,使用的端口應該是宿主機的端口8000.

> docker run -p 8000:9000 --name jerrydockerdemo -d jerry/springbootexample:v1

如何把SpringBoot應用打包成Docker鏡像并運行

可以使用docker ps命令拿到該運行鏡像的ID,再用docker stop命令終止鏡像的運行。

也可以使用命令docker exec -it, 進入一個正在運行的容器內部:

> sudo docker exec -it 8302db78f838 /bin/sh

我們之前在編寫Dockerfile時,用VOLUME指令創建的tmp,此時進入容器內部就可以觀察到了。在tmp里,果然發現了SpringBoot在執行過程中,其內置的Tomcat實例運行時工作目錄下生成的數據。

如何把SpringBoot應用打包成Docker鏡像并運行

“如何把SpringBoot應用打包成Docker鏡像并運行”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

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

AI

巴彦淖尔市| 乌兰县| 牡丹江市| 奉化市| 南投市| 吕梁市| 盘锦市| 阳泉市| 南汇区| 裕民县| 扎囊县| 濮阳市| 云和县| 天峨县| 图们市| 苏尼特左旗| 和硕县| 上栗县| 乌鲁木齐县| 威信县| 浪卡子县| 桂林市| 石楼县| 芦溪县| 通海县| 卓尼县| 青田县| 咸宁市| 安仁县| 西峡县| 铜山县| 光山县| 喀喇沁旗| 游戏| 屯门区| 南漳县| 蛟河市| 马边| 沂南县| 神池县| 刚察县|