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

SpringBoot構(gòu)建Docker鏡像的實(shí)現(xiàn)步驟

 更新時間:2026年05月07日 08:26:05   作者:Hadoop_Liang  
本文主要介紹了SpringBoot構(gòu)建Docker鏡像的實(shí)現(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

1.前提條件

  • Windows下安裝好JDK 8+、Maven 3.6+、IDEA
  • Linux下安裝好Docker

2.新建Spring Boot項(xiàng)目

修改初始化Spring Boot項(xiàng)目URL:打開IDEA,點(diǎn)擊File-->New Project,點(diǎn)擊Spring Initializr,點(diǎn)擊設(shè)置圖標(biāo),填寫Server URL地址為https://start.aliyun.com/

點(diǎn)擊OK

填寫工程名稱(Name),例如demo,選擇在合適位置(Location)創(chuàng)建工程,語言(Language)選Java,類型(Type)選Maven,這里以JDK8為例,Java選擇8(若使用高版本JDK就選中對應(yīng)的高版本JDK),打包(Packaging)選擇Jar,點(diǎn)擊Next

Spring Boot版本選擇2.7.6,點(diǎn)擊Web,勾選Spring Web,點(diǎn)擊Create創(chuàng)建Spring Boot項(xiàng)目

查看啟動類DemoApplication.java

點(diǎn)擊如下三角形,運(yùn)行Spring Boot項(xiàng)目

選擇Run 'DemoApplication'

瀏覽器訪問localhost:8080/html

看到的頁面內(nèi)容是阿里云初始化Spring Boot項(xiàng)目時提供的初始模板代碼,感興趣也可以添加自己編寫的代碼,并測試通過

停止運(yùn)行程序

3.打jar包

點(diǎn)擊右側(cè)的Maven打開Maven面板,點(diǎn)開項(xiàng)目名稱的Lifecycle,按住Ctrl鍵不放,同時選中clean和package,點(diǎn)擊圖示三角形圖標(biāo)打包項(xiàng)目

看到BUILD SUCCESS字樣輸出,說明打jar包成功。根據(jù)日志提示可以看到j(luò)ar在工程目錄的target目錄下

在target目錄下看到j(luò)ar文件demo-0.0.1-SNAPSHOT.jar,說明打包成功

4.編寫Dockerfile

在項(xiàng)目根目錄新建Dockerfile文件

填寫文件名稱為Dockerfile

注意:文件名必須為Dockerfile

Dockerfile內(nèi)容如下:

# JDK8作為基礎(chǔ)鏡像
# FROM openjdk:8
FROM registry.cn-hangzhou.aliyuncs.com/my-common-images/openjdk:8
# 作者
MAINTAINER example
# 復(fù)制jar
COPY demo-0.0.1-SNAPSHOT.jar app.jar
# 啟動命令
ENTRYPOINT ["java","-jar","/app.jar"]

效果如下

5.上傳Dockerfile和jar包到Docker所在的Linux機(jī)器

Linux創(chuàng)建demo目錄

[root@localhost ~]# mkdir demo

分別上傳Dockerfile和demo-0.0.1-SNAPSHOT.jar到Linux demo目錄下,上傳成功后可查看到文件如下:

[root@localhost ~]# cd demo
[root@localhost demo]# ls
Dockerfile  demo-0.0.1-SNAPSHOT.jar

6.構(gòu)建Docker鏡像

執(zhí)行docker build命令構(gòu)建鏡像

docker build -t spring-boot-jdk8-demo:1.0 .

操作過程如下

[root@localhost demo]# docker build -t spring-boot-jdk8-demo:1.0 .
[+] Building 0.0s (7/7) FINISHED                                   docker:default
 => [internal] load build definition from Dockerfile                         0.0s
 => => transferring dockerfile: 292B                                         0.0s
 => WARN: MaintainerDeprecated: Maintainer instruction is deprecated in fav  0.0s
 => [internal] load metadata for registry.cn-hangzhou.aliyuncs.com/my-commo  0.0s
 => [internal] load .dockerignore                                            0.0s
 => => transferring context: 2B                                              0.0s
 => CACHED [1/2] FROM registry.cn-hangzhou.aliyuncs.com/my-common-images/op  0.0s
 => [internal] load build context                                            0.0s
 => => transferring context: 6.05kB                                          0.0s
 => [2/2] COPY demo-0.0.1-SNAPSHOT.jar app.jar                               0.0s
 => exporting to image                                                       0.0s
 => => exporting layers                                                      0.0s
 => => writing image sha256:db084d7b5dbee75438b823914f7ea8bfafd0a942c610adc  0.0s
 => => naming to docker.io/library/spring-boot-jdk8-demo:1.0                 0.0s
?
 1 warning found (use docker --debug to expand):
 - MaintainerDeprecated: Maintainer instruction is deprecated in favor of using label (line 6)
[root@localhost demo]#

查看鏡像

[root@localhost demo]# docker images | grep spring-boot
spring-boot-jdk8-demo                                        1.0           db084d7b5dbe   About a minute ago   526MB

7.運(yùn)行容器

docker run -d -p 8080:8080 --name spring-boot-jdk8 spring-boot-jdk8-demo:1.0

8.測試訪問及排錯

瀏覽器訪問

Linux ip:8080/html

發(fā)現(xiàn)訪問不到內(nèi)容

排錯:發(fā)現(xiàn)容器沒有起來

[root@localhost demo]# docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
[root@localhost demo]# docker ps -a
CONTAINER ID   IMAGE                       COMMAND                  CREATED              STATUS                          PORTS     NAMES
2640f7e02e57   spring-boot-jdk8-demo:1.0   "java -jar /app.jar"     About a minute ago   Exited (1) About a minute ago             spring-boot-jdk8

查看容器日志:發(fā)現(xiàn)no main manifest attribute, in /app.jar問題

[root@localhost demo]# docker logs spring-boot-jdk8
no main manifest attribute, in /app.jar

原因是pom.xml中mainClass主類配置被skip為true忽略了

解決

刪除mainClass下方的skip一行

<skip>true</skip>

修改pom.xml后,效果如下

刷新maven項(xiàng)目

重新打jar包

重新上傳jar包到Linux demo目錄

刪除原來的容器

[root@localhost ~]# docker rm spring-boot-jdk8

刪除原來的鏡像

[root@localhost demo]# docker rmi -f spring-boot-jdk8-demo:1.0

重新構(gòu)建鏡像

[root@localhost demo]# docker build -t spring-boot-jdk8-demo:1.0 .

重新運(yùn)行容器

[root@localhost demo]# docker run -d -p 8080:8080 --name spring-boot-jdk8 spring-boot-jdk8-demo:1.0

瀏覽器訪問

Linux ip:8080/html

到此這篇關(guān)于SpringBoot構(gòu)建Docker鏡像的實(shí)現(xiàn)步驟的文章就介紹到這了,更多相關(guān)SpringBoot構(gòu)建Docker鏡像內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Windows Zookeeper安裝過程及啟動圖解

    Windows Zookeeper安裝過程及啟動圖解

    這篇文章主要介紹了Windows Zookeeper安裝過程及啟動圖解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-12-12
  • 鴻蒙與Java跨平臺Socket通信實(shí)戰(zhàn)代碼實(shí)例

    鴻蒙與Java跨平臺Socket通信實(shí)戰(zhàn)代碼實(shí)例

    Socket是網(wǎng)絡(luò)編程的基礎(chǔ),提供了進(jìn)程間通信的通用接口,下面這篇文章主要介紹了鴻蒙與Java跨平臺Socket通信實(shí)戰(zhàn)的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2026-03-03
  • JAVA中值類型和引用類型的區(qū)別

    JAVA中值類型和引用類型的區(qū)別

    在java開發(fā)中經(jīng)常會遇到值類型和引用類型知識,但是有很多朋友不清楚java中值類型和引用類型的區(qū)別,今天小編通過本文給大家介紹下
    2017-02-02
  • Java中初始化List集合的八種方式匯總

    Java中初始化List集合的八種方式匯總

    List?是?Java?開發(fā)中經(jīng)常會使用的集合,下面這篇文章主要給大家介紹了關(guān)于Java中初始化List集合的八種方式,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-06-06
  • Java集合List的方法及遍歷方式舉例

    Java集合List的方法及遍歷方式舉例

    這篇文章主要介紹了Java集合List的方法及遍歷方式的相關(guān)資料,List?是Java集合框架中的一種接口,繼承自Collection接口,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-05-05
  • MybatisPlus?自定義插件實(shí)現(xiàn)攔截SQL修改功能(實(shí)例詳解)

    MybatisPlus?自定義插件實(shí)現(xiàn)攔截SQL修改功能(實(shí)例詳解)

    這篇文章主要介紹了MybatisPlus?自定義插件實(shí)現(xiàn)攔截SQL修改功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2023-11-11
  • Java注解簡介和使用詳細(xì)講解

    Java注解簡介和使用詳細(xì)講解

    Java 語言中的類、構(gòu)造器、方法、成員變量、參數(shù)等都可以被注解進(jìn)行標(biāo)注,這篇文章主要介紹了Java注解的介紹和使用詳細(xì)講解,需要的朋友可以參考下
    2023-02-02
  • SpringMVC中Controller層獲取前端請求參數(shù)的方式匯總

    SpringMVC中Controller層獲取前端請求參數(shù)的方式匯總

    這篇文章主要介紹了SpringMVC中Controller層獲取前端請求參數(shù)的幾種方式,本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-08-08
  • Springboot配置管理Externalized?Configuration深入探究

    Springboot配置管理Externalized?Configuration深入探究

    這篇文章主要介紹了Springboot配置管Externalized?Configuration深入探究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01
  • SpringBoot使用Nacos配置中心的實(shí)現(xiàn)

    SpringBoot使用Nacos配置中心的實(shí)現(xiàn)

    這篇文章主要介紹了SpringBoot使用Nacos配置中心的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12

最新評論

井陉县| 桃园市| 五指山市| 南宁市| 万荣县| 昌宁县| 万源市| 永吉县| 宜春市| 水富县| 娱乐| 鹰潭市| 太保市| 铅山县| 博兴县| 成武县| 临西县| 如东县| 牡丹江市| 铜鼓县| 鞍山市| 佛教| 锦屏县| 共和县| 丘北县| 三都| 吉安县| 龙泉市| 张北县| 八宿县| 宁德市| 高雄县| 大港区| 习水县| 栾城县| 西藏| 夏津县| 巴青县| 永和县| 高青县| 山阴县|