使用IDEA部署Docker應(yīng)用指南分享
一、創(chuàng)建 Dockerfile 配置文件
在項(xiàng)目根目錄下創(chuàng)建Dockerfile文件,配置內(nèi)容如下:
# 使用官方的OpenJDK鏡像作為基礎(chǔ)鏡像 FROM openjdk:17-jdk-slim # 設(shè)置維護(hù)者信息(可選) LABEL maintainer="三木豪" # 設(shè)置工作目錄 WORKDIR /app # 將本地構(gòu)建好的jar包復(fù)制到容器中 COPY runner/target/runner-0.0.1-SNAPSHOT.jar /app/runner.jar # 暴露應(yīng)用運(yùn)行的端口,默認(rèn)Spring Boot應(yīng)用會(huì)監(jiān)聽8080端口 EXPOSE 8080 # 設(shè)置環(huán)境變量(可選),比如時(shí)區(qū)等 ENV TZ=Asia/Shanghai RUN ln -snf /usr/share/zoneinfo/\$TZ /etc/localtime && echo \$TZ > /etc/timezone # 啟動(dòng)命令,使用java -jar命令來(lái)啟動(dòng)應(yīng)用 ENTRYPOINT \["java", "-jar", "/app/runner.jar"]

二、配置 IDEA 的 Docker 連接
- 打開 IDEA 的設(shè)置頁(yè)面(
File→Settings) - 在左側(cè)導(dǎo)航欄中選擇 構(gòu)建、執(zhí)行、部署→Docker
- 點(diǎn)擊右上角的
+號(hào)添加 Docker 連接 - 選擇連接方式(示例中選擇
SSH連接),并填寫相關(guān)連接信息 - 點(diǎn)擊
確認(rèn)完成連接配置

三、配置 Docker 運(yùn)行 / 調(diào)試環(huán)境
點(diǎn)擊 IDEA 頂部菜單欄的Run→編輯配置(或直接點(diǎn)擊工具欄中的運(yùn)行配置下拉框選擇編輯配置)
在彈出的窗口中:
- 點(diǎn)擊左上角
+號(hào),選擇Docker→Dockerfile - 在
服務(wù)器選項(xiàng)中選擇剛剛配置的 Docker 服務(wù)連接(示例中為 “騰訊云”) - 在
Dockerfile選項(xiàng)中選擇項(xiàng)目根目錄下的Dockerfile文件 - 設(shè)定
鏡像標(biāo)記(示例中為adminzoo)
配置容器相關(guān)參數(shù):
- 容器名稱:
adminzoo - 綁定端口:
9802:9491(格式為主機(jī)端口:容器端口) - 運(yùn)行選項(xiàng):
--network ubuntu_app_network(根據(jù)實(shí)際網(wǎng)絡(luò)需求配置)
點(diǎn)擊應(yīng)用→確定完成配置

四、構(gòu)建并運(yùn)行 Docker 鏡像
- 在 IDEA 頂部的運(yùn)行配置下拉框中,選擇剛剛配置好的 Docker 運(yùn)行環(huán)境
- 點(diǎn)擊運(yùn)行按鈕(綠色三角形)
- 觀察 IDEA 底部的控制臺(tái)輸出,可查看 Docker 的鏡像構(gòu)建過程、運(yùn)行狀態(tài)及應(yīng)用日志

注意事項(xiàng)
- 確保本地已構(gòu)建好對(duì)應(yīng)的 Jar 包(示例中為
runner/target/runner-0.0.1-SNAPSHOT.jar),否則會(huì)出現(xiàn)文件復(fù)制失敗的錯(cuò)誤 - 端口映射需確保主機(jī)端口未被占用,且容器內(nèi)部應(yīng)用監(jiān)聽的端口與
EXPOSE指令及映射配置一致 - 若需要連接其他容器服務(wù),需確保在同一網(wǎng)絡(luò)中(可通過
--network參數(shù)指定)
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
淺談Java中BigDecimal類的簡(jiǎn)單應(yīng)用
這篇文章主要介紹了淺談Java中BigDecimal類的簡(jiǎn)單應(yīng)用,BigDecimal是由任意精度的整數(shù)非標(biāo)度值和32位的整數(shù)標(biāo)度組成,如果為零或正數(shù),則標(biāo)度是小數(shù)點(diǎn)后的位數(shù),如果為負(fù)數(shù),則將該數(shù)的非標(biāo)度值乘以?10的負(fù)scale次冪,需要的朋友可以參考下2023-07-07
SpringBoot如何打印mybatis的執(zhí)行sql問題
這篇文章主要介紹了SpringBoot如何打印mybatis的執(zhí)行sql問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03
SpringBoot+vue實(shí)現(xiàn)登錄圖片驗(yàn)證碼功能
這篇文章主要給大家介紹一下如何SpringBoot+vue實(shí)現(xiàn)登錄圖片驗(yàn)證碼功能,文中有詳細(xì)的代碼示例,具有一定的參考價(jià)值,需要的朋友可以參考下2023-07-07
Java實(shí)現(xiàn)酒店客房管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)酒店客房管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-02-02
Java封裝數(shù)組之改進(jìn)為泛型數(shù)組操作詳解
這篇文章主要介紹了Java封裝數(shù)組之改進(jìn)為泛型數(shù)組操作,結(jié)合實(shí)例形式詳細(xì)分析了Java封裝數(shù)組為泛型數(shù)組相關(guān)原理、操作技巧與注意事項(xiàng),需要的朋友可以參考下2020-03-03
一文掌握Spring Cookie和Session 是什么及區(qū)別介紹
Cookie和Session都是用于在客戶端和服務(wù)器之間傳遞信息的技術(shù),但它們的工作方式和使用場(chǎng)景有所不同,Cookie是在客戶端保存用戶信息的一種機(jī)制,而Session是在服務(wù)器端保存用戶信息的一種機(jī)制,本文介紹Spring Cookie和Session 是什么,感興趣的朋友一起看看吧2025-01-01
解析Java中的隊(duì)列和用LinkedList集合模擬隊(duì)列的方法
這篇文章主要介紹了解析Java中的隊(duì)列和用LinkedList集合模擬隊(duì)列的方法,相關(guān)算法的實(shí)現(xiàn)也是ACM中的常見題目,需要的朋友可以參考下2015-08-08

