激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

云服務(wù)器|WEB服務(wù)器|FTP服務(wù)器|郵件服務(wù)器|虛擬主機(jī)|服務(wù)器安全|DNS服務(wù)器|服務(wù)器知識(shí)|Nginx|IIS|Tomcat|

服務(wù)器之家 - 服務(wù)器技術(shù) - 服務(wù)器知識(shí) - 使用Docker部署Spring Boot的實(shí)現(xiàn)方法

使用Docker部署Spring Boot的實(shí)現(xiàn)方法

2021-03-31 16:39alterem 服務(wù)器知識(shí)

這篇文章主要介紹了使用Docker部署Spring Boot的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

Docker 技術(shù)發(fā)展為微服務(wù)落地提供了更加便利的環(huán)境,使用 Docker 部署 Spring Boot 其實(shí)非常簡(jiǎn)單,這篇文章我們就來(lái)簡(jiǎn)單學(xué)習(xí)下。

首先構(gòu)建一個(gè)簡(jiǎn)單的 Spring Boot 項(xiàng)目,然后給項(xiàng)目添加 Docker 支持,最后對(duì)項(xiàng)目進(jìn)行部署。

一個(gè)簡(jiǎn)單 Spring Boot 項(xiàng)目

在 pom.xml 中 ,使用 Spring Boot 2.0 相關(guān)依賴

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

添加 web 和測(cè)試依賴

?
1
2
3
4
5
6
7
8
9
10
11
<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>

創(chuàng)建一個(gè) DockerController,在其中有一個(gè)index()方法,訪問(wèn)時(shí)返回:Hello Docker!

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

啟動(dòng)類

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

添加完畢后啟動(dòng)項(xiàng)目,啟動(dòng)成功后瀏覽器放問(wèn):http://localhost:8080/,頁(yè)面返回:Hello Docker!,說(shuō)明 Spring Boot 項(xiàng)目配置正常。

Spring Boot 項(xiàng)目添加 Docker 支持

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

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

plugins 中添加 Docker 構(gòu)建插件:

?
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
<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>

在目錄src/main/docker下創(chuàng)建 Dockerfile 文件,Dockerfile 文件用來(lái)說(shuō)明如何來(lái)構(gòu)建鏡像。

?
1
2
3
4
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"]

這個(gè) Dockerfile 文件很簡(jiǎn)單,構(gòu)建 Jdk 基礎(chǔ)環(huán)境,添加 Spring Boot Jar 到鏡像中,簡(jiǎn)單解釋一下:

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

這樣 Spring Boot 項(xiàng)目添加 Docker 依賴就完成了。

構(gòu)建打包環(huán)境

我們需要有一個(gè) Docker 環(huán)境來(lái)打包 Spring Boot 項(xiàng)目,在 Windows 搭建 Docker 環(huán)境很麻煩,因此我這里以 Centos 7 為例。

安裝 Docker 環(huán)境

安裝

?
1
yum install docker

安裝完成后,使用下面的命令來(lái)啟動(dòng) docker 服務(wù),并將其設(shè)置為開(kāi)機(jī)啟動(dòng):

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

使用Docker 中國(guó)加速器

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

重新啟動(dòng)docker

?
1
systemctl restart docker

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

安裝JDK

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

配置環(huán)境變量 打開(kāi) vim /etc/profile 添加一下內(nèi)容

?
1
2
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
source /etc/profile

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

安裝MAVEN

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

?
1
2
3
4
## 解壓
tar vxf apache-maven-3.5.2-bin.tar.gz
## 移動(dòng)
mv apache-maven-3.5.2 /usr/local/maven3

修改環(huán)境變量, 在/etc/profile中添加以下幾行

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

記得執(zhí)行source /etc/profile使環(huán)境變量生效。

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

這樣整個(gè)構(gòu)建環(huán)境就配置完成了。

使用 Docker 部署 Spring Boot 項(xiàng)目

將項(xiàng)目 spring-boot-docker 拷貝服務(wù)器中,進(jìn)入項(xiàng)目路徑下進(jìn)行打包測(cè)試。

?
1
2
3
4
#打包
mvn package
#啟動(dòng)
java -jar target/spring-boot-docker-1.0.jar

看到 Spring Boot 的啟動(dòng)日志后表明環(huán)境配置沒(méi)有問(wèn)題,接下來(lái)我們使用 DockerFile 構(gòu)建鏡像。

?
1
mvn package docker:build

第一次構(gòu)建可能有點(diǎn)慢,當(dāng)看到以下內(nèi)容的時(shí)候表明構(gòu)建成功:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
...
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] ------------------------------------------------------------------------

使用docker images命令查看構(gòu)建好的鏡像:

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

springboot/spring-boot-docker 就是我們構(gòu)建好的鏡像,下一步就是運(yùn)行該鏡像

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

啟動(dòng)完成之后我們使用docker ps查看正在運(yùn)行的鏡像:

?
1
2
3
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

可以看到我們構(gòu)建的容器正在在運(yùn)行,訪問(wèn)瀏覽器:http://192.168.0.x:8080/,返回

?
1
Hello Docker!

說(shuō)明使用 Docker 部署 Spring Boot 項(xiàng)目成功!

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持服務(wù)器之家。

原文鏈接:https://juejin.im/post/5d5b4f105188253f643902d8

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 最新日韩一区 | 国产精品久久久久久模特 | 久久免费观看一级毛片 | 日日爱夜夜操 | 亚洲综合色视频在线观看 | 欧美精品毛片 | 国产精品一区2区3区 | 久久99精品久久 | 午夜影视一区二区 | 国产色爱综合网 | 久久国产精品99久久人人澡 | 亚洲资源在线播放 | 蜜桃久久一区二区三区 | 久久成人免费观看 | 久久久中 | 极品美女一级毛片 | 国产免费小视频在线观看 | 爱爱视频天天干 | 综合精品久久 | 亚洲国产网站 | a免费视频 | 黄色高清av | 久久99网 | 青草久久网 | 久久草在线观看视频 | 狠狠干视频网站 | 精品亚洲va在线va天堂资源站 | 国产美女视频一区二区三区 | av中文字幕免费在线观看 | 日日噜噜噜夜夜狠狠久久蜜桃 | 中文字幕免费看 | 91精品久久久久久久久久久 | h色视频在线观看 | 精品一区二区在线播放 | 一本一道久久久a久久久精品91 | 午夜视频你懂的 | 99精品在线观看 | 4p一女两男做爰在线观看 | 成人9禁啪啪无遮挡免费 | 欧美一级黄色影院 | 成人免费在线观看视频 |