日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Spring Boot 2.0(四):使用 Docker 部署 Spring Boot

發布時間:2025/3/21 javascript 13 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring Boot 2.0(四):使用 Docker 部署 Spring Boot 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Docker 技術發展為微服務落地提供了更加便利的環境,使用 Docker 部署 Spring Boot 其實非常簡單,這篇文章我們就來簡單學習下。

首先構建一個簡單的 Spring Boot 項目,然后給項目添加 Docker 支持,最后對項目進行部署。

一個簡單 Spring Boot 項目

在?pom.xml?中 ,使用 Spring Boot 2.0 相關依賴

<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.0.0.RELEASE</version> </parent>
  • 1
  • 2
  • 3
  • 4
  • 5

添加 web 和測試依賴

<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency> </dependencies>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

創建一個 DockerController,在其中有一個index()方法,訪問時返回:Hello Docker!

@RestController public class DockerController {@RequestMapping("/")public String index() {return "Hello Docker!";} }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

啟動類

@SpringBootApplication public class DockerApplication {public static void main(String[] args) {SpringApplication.run(DockerApplication.class, args);} }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

添加完畢后啟動項目,啟動成功后瀏覽器放問:http://localhost:8080/,頁面返回:Hello Docker!,說明 Spring Boot 項目配置正常。

Spring Boot 項目添加 Docker 支持

在?pom.xml-properties中添加 Docker 鏡像名稱

<properties><docker.image.prefix>springboot</docker.image.prefix> </properties>
  • 1
  • 2
  • 3

plugins 中添加 Docker 構建插件:

<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin><!-- Docker maven plugin --><plugin><groupId>com.spotify</groupId><artifactId>docker-maven-plugin</artifactId><version>1.0.0</version><configuration><imageName>${docker.image.prefix}/${project.artifactId}</imageName><dockerDirectory>src/main/docker</dockerDirectory><resources><resource><targetPath>/</targetPath><directory>${project.build.directory}</directory><include>${project.build.finalName}.jar</include></resource></resources></configuration></plugin><!-- Docker maven plugin --></plugins> </build>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26

在目錄src/main/docker下創建 Dockerfile 文件,Dockerfile 文件用來說明如何來構建鏡像。

FROM openjdk:8-jdk-alpine VOLUME /tmp ADD spring-boot-docker-1.0.jar app.jar ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
  • 1
  • 2
  • 3
  • 4

這個 Dockerfile 文件很簡單,構建 Jdk 基礎環境,添加 Spring Boot Jar 到鏡像中,簡單解釋一下:

  • FROM ,表示使用 Jdk8 環境 為基礎鏡像,如果鏡像不是本地的會從 DockerHub 進行下載
  • VOLUME ,VOLUME 指向了一個/tmp的目錄,由于 Spring Boot 使用內置的Tomcat容器,Tomcat 默認使用/tmp作為工作目錄。這個命令的效果是:在宿主機的/var/lib/docker目錄下創建一個臨時文件并把它鏈接到容器中的/tmp目錄
  • ADD ,拷貝文件并且重命名
  • ENTRYPOINT ,為了縮短 Tomcat 的啟動時間,添加java.security.egd的系統屬性指向/dev/urandom作為 ENTRYPOINT

這樣 Spring Boot 項目添加 Docker 依賴就完成了。

構建打包環境

我們需要有一個 Docker 環境來打包 Spring Boot 項目,在 Windows 搭建 Docker 環境很麻煩,因此我這里以 Centos 7 為例。

安裝 Docker 環境

安裝

yum install docker
  • 1

安裝完成后,使用下面的命令來啟動 docker 服務,并將其設置為開機啟動:

ervice docker start chkconfig docker on#LCTT 譯注:此處采用了舊式的 sysv 語法,如采用CentOS 7中支持的新式 systemd 語法,如下: systemctl start docker.service systemctl enable docker.service
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

使用Docker 中國加速器

vi /etc/docker/daemon.json#添加后: {"registry-mirrors": ["https://registry.docker-cn.com"],"live-restore": true }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

重新啟動docker

systemctl restart docker
  • 1

輸入docker version?返回版本信息則安裝正常。

安裝JDK

yum -y install java-1.8.0-openjdk*
  • 1

配置環境變量?
打開?vim /etc/profile?
添加一下內容

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64 export PATH=$PATH:$JAVA_HOME/bin
  • 1
  • 2

修改完成之后,使其生效

source /etc/profile
  • 1

輸入java -version?返回版本信息則安裝正常。

安裝MAVEN

下載:http://mirrors.shu.edu.cn/apache/maven/maven-3/3.5.2/binaries/apache-maven-3.5.2-bin.tar.gz

## 解壓 tar vxf apache-maven-3.5.2-bin.tar.gz ## 移動 mv apache-maven-3.5.2 /usr/local/maven3
  • 1
  • 2
  • 3
  • 4

修改環境變量, 在/etc/profile中添加以下幾行

MAVEN_HOME=/usr/local/maven3 export MAVEN_HOME export PATH=${PATH}:${MAVEN_HOME}/bin
  • 1
  • 2
  • 3

記得執行source /etc/profile使環境變量生效。

輸入mvn -version?返回版本信息則安裝正常。

這樣整個構建環境就配置完成了。

使用 Docker 部署 Spring Boot 項目

將項目?spring-boot-docker?拷貝服務器中,進入項目路徑下進行打包測試。

#打包 mvn package #啟動 java -jar target/spring-boot-docker-1.0.jar
  • 1
  • 2
  • 3
  • 4

看到 Spring Boot 的啟動日志后表明環境配置沒有問題,接下來我們使用 DockerFile 構建鏡像。

mvn package docker:build
  • 1

第一次構建可能有點慢,當看到以下內容的時候表明構建成功:

... Step 1 : FROM openjdk:8-jdk-alpine---> 224765a6bdbe Step 2 : VOLUME /tmp---> Using cache ---> b4e86cc8654e Step 3 : ADD spring-boot-docker-1.0.jar app.jar---> a20fe75963ab Removing intermediate container 593ee5e1ea51 Step 4 : ENTRYPOINT java -Djava.security.egd=file:/dev/./urandom -jar /app.jar---> Running in 85d558a10cd4 ---> 7102f08b5e95 Removing intermediate container 85d558a10cd4 Successfully built 7102f08b5e95 [INFO] Built springboot/spring-boot-docker [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 54.346 s [INFO] Finished at: 2018-03-13T16:20:15+08:00 [INFO] Final Memory: 42M/182M [INFO] ------------------------------------------------------------------------
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

使用docker images命令查看構建好的鏡像:

docker images REPOSITORY TAG IMAGE ID CREATED SIZE springboot/spring-boot-docker latest 99ce9468da74 6 seconds ago 117.5 MB
  • 1
  • 2
  • 3

springboot/spring-boot-docker?就是我們構建好的鏡像,下一步就是運行該鏡像

docker run -p 8080:8080 -t springboot/spring-boot-docker
  • 1

啟動完成之后我們使用docker ps查看正在運行的鏡像:

docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 049570da86a9 springboot/spring-boot-docker "java -Djava.security" 30 seconds ago Up 27 seconds 0.0.0.0:8080->8080/tcp determined_mahavira
  • 1
  • 2
  • 3

可以看到我們構建的容器正在在運行,訪問瀏覽器:http://192.168.0.x:8080/,返回

Hello Docker!
  • 1

說明使用 Docker 部署 Spring Boot 項目成功!

示例代碼-github

示例代碼-碼云

總結

以上是生活随笔為你收集整理的Spring Boot 2.0(四):使用 Docker 部署 Spring Boot的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 色哟哟免费 | 污污视频网站 | xvideos永久免费入口 | 国内一级视频 | 国产又黄又大又粗视频 | 中国国产毛片 | 亚洲第一区在线播放 | 野战少妇38p | 中文字幕乱码中文乱码777 | 国内自拍视频在线观看 | 色窝在线| 国产日韩欧美综合在线 | 天堂在线一区二区 | 久久99草| 五月婷婷色 | 国产精品人妻一区二区三区 | 日日狠狠久久偷偷四色综合免费 | av5566 | 日韩精品――中文字幕 | 亚洲欧美激情小说另类 | 青青草华人在线视频 | 欧美成人三级伦在线观看 | 91国在线 | 黄色a网站| 久久久久久黄 | 成人中文视频 | 国产91久久婷婷一区二区 | 亚洲小视频 | 欧美射图 | 国产成人精品aa毛片 | 特级西西人体444www高清大胆 | 久久爱资源网 | 黄色不打码视频 | 免费黄色av网址 | 国产精品久久久久久久无码 | 日本在线有码 | 在线免费国产视频 | 日韩不卡视频在线 | 色视频在线观看 | 99久久99久久精品免费看蜜桃 | 三级艳丽杨钰莹三级 | 国产人成无码视频在线观看 | 老司机精品视频网站 | 99久久精 | 欧美拍拍视频 | 青青青国产视频 | 德国经典free性复古xxxx | 九九热re | 日本三级理论片 | 夜夜爱夜夜操 | 强伦人妻一区二区三区 | 黄黄视频在线观看 | 蜜臀一区二区三区精品免费视频 | xxxx视频在线观看 | 久久在线视频精品 | 小sao货大ji巴cao死你 | 含羞草一区二区 | 国产人妖视频 | 新婚夫妇白天啪啪自拍 | 第一av| 国产三级91| 欧美精品在线视频观看 | 国产三级在线看 | 日日爱av | 国产成人精品一区二区色戒 | 可以直接看的无码av | 麻豆乱码国产一区二区三区 | 久久亚洲成人av | 亚洲热在线观看 | 国产日本精品 | 四虎网站在线观看 | 日本一区二区免费高清视频 | 女人被狂躁60分钟视频 | 亚洲综合伊人久久 | 日本一区二区视频在线播放 | 色男人av| 中文人妻熟女乱又乱精品 | av小说免费在线观看 | 久久精品a| 红桃视频国产精品 | 久久精品一本 | 成人在线观看免费高清 | 亚洲午夜一区二区三区 | 国模精品一区 | 91艹 | 欧洲成人午夜精品无码区久久 | 国产在线专区 | 午夜久久久久久久久 | 日韩精品一区二区三区免费视频 | 亚洲国产精品久久久久久久 | 激情播播网 | 美女撒尿无遮挡网站 | 九一精品一区 | 亚洲成熟毛多妇女av毛片 | 91高清视频在线观看 | 九九久久网 | 日韩视频一区二区在线观看 | 重囗味sm一区二区三区 | 可以在线观看的av网站 |