最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用idea部署springboot項目到docker實踐

 更新時間:2026年04月25日 15:49:02   作者:今日相樂,皆當喜歡  
這篇文章主要介紹了使用idea部署springboot項目到docker實踐,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

本篇博客記錄如何用idea里的docker插件去部署springboot項目到docker容器里

相關(guān)Linux的準備工作

1、配置docker遠程連接端口

編輯服務(wù)器上的docker.service文件

vi /usr/lib/systemd/system/docker.service

找到如下圖所示的地方,添加以下東西(版本需為centos7以上):

-H tcp://0.0.0.0:2375

如果版本是centos7以下的則直接在這一行的最后添加即可,centos7以下版本添加后的全部代碼為:

ExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2375

2、保存修改退出,重啟docker

systemctl daemon-reload
service docker restart

3、測試遠程連接是否正常

curl http://localhost:2375/version

如果出現(xiàn)以下內(nèi)容則能正常連接:

4、開放端口

需要將2375端口進行開放才能被遠程連接,如果是阿里云主機的話,可以直接登錄阿里云去進行開放:

如果是虛擬機的話,可以用以下命令進行開放:

firewall-cmd --zone=public --add-port=2375/tcp --permanent

然后用瀏覽器訪問Linux主機的IP:2375/version,測試端口是否開放成功

5、在docker里裝MySQL數(shù)據(jù)庫

(如果已經(jīng)裝過則不用)

#拉取MySQL鏡像
docker pull mysql:5.7
#使用鏡像開啟服務(wù)(PASSWORD后面是root用戶的密碼)
docker run -d -p 3308:3306 --name mysql5.7 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7

然后看MySQL是否已啟動:

如果已啟動,則可以用工具去連接,注意端口用3308,因為MySQL的3306端口映射成了3308

6、在docker里裝redis

(如果已經(jīng)裝過則不用)

#拉取redis鏡像
docker pull redis
#啟動redis
#redis-server --appendonly yes:在容器執(zhí)行redis-server啟動命令,并打開redis持久化配置
#requirepass "123456":配置redis連接密碼
docker run --name redis -p 6379:6379 -d --restart=always redis redis-server --appendonly yes --requirepass "123456"

然后看redis是否已啟動:

如果已啟動,則可以用工具去連接,端口用6379

相關(guān)idea的操作

1、下載docker插件

在File-》Setting-》Plugins-》Browse Repositones進行下載:

2、使用docker插件連接到Linux上的docker容器

在File-》Settings-》Build, Execution, Deployment-》Docker里用Linux主機的IP:2375進行連接:

連接成功后可以看到docker里所有的鏡像以及容器:

3、在項目中添加一個docker文件夾并創(chuàng)建Dockerfile文件

Dockerfile文件的內(nèi)容如下:

#這是基礎(chǔ)鏡像
FROM java:8
VOLUME /tmp
#復(fù)制jar包到鏡像中,并且將名字改成app.jar
ADD springboot_project.jar app.jar
#在容器啟動的時候運行命令,來啟動我們的項目(這其實就是一段Linux命令)
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

建議先登錄Linux用命令拉取java:8基礎(chǔ)鏡像,這樣以免到后面build鏡像的時候才拉取,造成用時很長

4、在pom.xml里添加docker相關(guān)配置

<plugin>
    <groupId>com.spotify</groupId>
    <artifactId>docker-maven-plugin</artifactId>
    <version>1.0.0</version>
    <configuration>
        <dockerDirectory>src/main/docker</dockerDirectory>
        <resources>
            <resource>
                <targetPath>/</targetPath>
                <directory>${project.build.directory}</directory>
                <include>${project.build.finalName}.jar</include>
            </resource>
        </resources>
    </configuration>
</plugin>
<plugin>
    <artifactId>maven-antrun-plugin</artifactId>
    <!--綁定mvn package命令,當執(zhí)行package這個maven命令打包項目的同時
        會把target目錄下的jar包給copy到docker目錄去-->
    <executions>
        <execution>
            <phase>package</phase>
            <configuration>
                <tasks>
                    <copy todir="src/main/docker" file="target/${project.artifactId}.${project.packaging}"></copy>
                </tasks>
            </configuration>
            <goals>
                <goal>run</goal>
            </goals>
        </execution>
    </executions>
</plugin>

5、添加一個docker配置

具體配置如下:

部分解釋如下:

  • Name:這個根據(jù)自己的項目進行命名
  • Server:這個就是遠程的服務(wù)器上的docker
  • Dockerfile:這個就是自己項目的Dockerfile文件
  • Image Tag:不能重復(fù)根據(jù)自己項目來定義
  • Container name:創(chuàng)建你自己生成容器的名字
  • Bindports:綁定服務(wù)器對外提供的端口和自己項目的端口(阿里云的端口需要在后臺自行管理打開)。格式為[宿主機端口]:[容器內(nèi)部端口]
  • Bind mounts:靜態(tài)資源存放路徑的映射,根據(jù)自己的項目自行映射。格式為[宿主機目錄]:[容器內(nèi)部目錄]            
  • Command line options:這是docker內(nèi)部的機制當某個容器需要其他運行容器的時候需要在這里配置。語法:--link 運行容器的名稱: 自己定義的名稱(多個的容器的話需要使用空格分隔)

6、將項目打成jar包

打包成功后,項目的target目錄跟docker目錄下都有一個jar包

7、運行docker來build鏡像

運行之前配置好的Dockerfile,打包鏡像,并將鏡像部署到遠程docker運行:

8、用瀏覽器訪問項目看效果

用瀏覽器訪問Linux主機IP+端口+項目名,效果如下:

部署期間遇到的問題

項目部署成功后訪問登錄頁面,調(diào)用后端接口生成的圖片驗證碼顯示不出來,看日志在報空指針異常,如下圖:

產(chǎn)生原因

我開始用的jdk基礎(chǔ)鏡像是openjdk:8-jdk-alpine,這個版本的jdk相比于我們平時用的jdk是不完整的,有些包是沒有的,所以導(dǎo)致空指針異常的出現(xiàn)

解決方案

將基礎(chǔ)鏡像換成java:8

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • springboot解析自定義yml方式

    springboot解析自定義yml方式

    這篇文章主要介紹了springboot解析自定義yml方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • Java通過索引值實現(xiàn)約瑟夫環(huán)算法

    Java通過索引值實現(xiàn)約瑟夫環(huán)算法

    這篇文章主要介紹了Java通過索引值實現(xiàn)約瑟夫環(huán),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • Spring如何解決循環(huán)依賴的問題

    Spring如何解決循環(huán)依賴的問題

    這篇文章主要介紹了Spring是如何解決循環(huán)依賴的問題,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-08-08
  • Java定義棧結(jié)構(gòu),并實現(xiàn)入棧、出棧操作完整示例

    Java定義棧結(jié)構(gòu),并實現(xiàn)入棧、出棧操作完整示例

    這篇文章主要介紹了Java定義棧結(jié)構(gòu),并實現(xiàn)入棧、出棧操作,結(jié)合完整實例形式分析了java數(shù)據(jù)結(jié)構(gòu)中棧的定義、以及入棧、出棧、棧是否為空判斷、棧大小計算、打印棧元素等相關(guān)操作技巧,需要的朋友可以參考下
    2020-02-02
  • Java編程中使用XFire框架調(diào)用WebService程序接口

    Java編程中使用XFire框架調(diào)用WebService程序接口

    這篇文章主要介紹了Java編程中使用XFire調(diào)用WebService程序接口的方法,WebService是一種跨編程語言和跨操作系統(tǒng)平臺的遠程調(diào)用技術(shù),需要的朋友可以參考下
    2015-12-12
  • Java中拼接字符串String的N種方法總結(jié)

    Java中拼接字符串String的N種方法總結(jié)

    字符串拼接是我們在Java代碼中比較經(jīng)常要做的事情,就是把多個字符串拼接到一起,下面這篇文章主要給大家介紹了關(guān)于Java中拼接String的N種方法,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-02-02
  • ReentrantLock從源碼解析Java多線程同步學(xué)習(xí)

    ReentrantLock從源碼解析Java多線程同步學(xué)習(xí)

    這篇文章主要為大家介紹了ReentrantLock從源碼解析Java多線程同步學(xué)習(xí),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-04-04
  • Spring session實現(xiàn)共享單點登錄案例過程解析

    Spring session實現(xiàn)共享單點登錄案例過程解析

    這篇文章主要介紹了Spring session實現(xiàn)共享單點登錄案例過程解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-07-07
  • log4j2異步Logger(詳解)

    log4j2異步Logger(詳解)

    下面小編就為大家?guī)硪黄猯og4j2異步Logger(詳解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-10-10
  • Java基本數(shù)據(jù)類型族譜與易錯點梳理解析

    Java基本數(shù)據(jù)類型族譜與易錯點梳理解析

    Java有八大基本類型,很多同學(xué)只對經(jīng)常使用的int類型比較了解。有的同學(xué)是剛從C語言轉(zhuǎn)入Java學(xué)習(xí),誤以為兩者的基本數(shù)據(jù)類型完全相同,這也是大錯特錯的。今天這本Java基本數(shù)據(jù)類型全解析大字典,可以幫助你直接通過目錄找到你想要了解某一種基本數(shù)據(jù)類型
    2022-01-01

最新評論

镇坪县| 芦山县| 孟州市| 汨罗市| 沂南县| 江阴市| 大关县| 始兴县| 买车| 芦溪县| 满洲里市| 安泽县| 化州市| 五峰| 乐清市| 克山县| 得荣县| 花莲县| 辉南县| 沈阳市| 阿拉善盟| 岳阳市| 信丰县| 陆川县| 衡阳县| 枣庄市| 泌阳县| 林甸县| 怀仁县| 富平县| 邹平县| 和林格尔县| 准格尔旗| 镇宁| 富民县| 阳信县| 邢台市| 连平县| 昭苏县| 宜兴市| 义马市|