国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

云服務器|WEB服務器|FTP服務器|郵件服務器|虛擬主機|服務器安全|DNS服務器|服務器知識|Nginx|IIS|Tomcat|

服務器之家 - 服務器技術 - 服務器知識 - Docker容器化spring boot應用詳解

Docker容器化spring boot應用詳解

2021-02-24 16:55ithaka 服務器知識

本篇文章主要介紹了Docker容器化spring boot應用詳解,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

前置條件

容器化spring boot應用所需環境:

  1. jdk 1.8 +
  2. maven 3.0 +

我們的需求是:使用maven打包,將spring boot應用制作成docker鏡像并上傳到docker hub。在其他機器上,可以直接docker pull并運行容器。

創建spring boot應用

spring boot 包結構為:

?
1
2
3
4
5
└── src
  └── main
    └── java
      └── me
        └── ithakar

創建spring boot Application主類,src/main/java/me/ithakar/Application.java

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
package me.ithakar;
 
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
 
@SpringBootApplication
@RestController
public class Application {
 
  @RequestMapping("/")
  public String home() {
    return "docker app running";
  }
 
  public static void main(String[] args) {
    SpringApplication.run(Application.class, args);
  }
 
}

pom.xml:

?
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
 
  <groupId>me.ithakar</groupId>
  <artifactId>docker-app</artifactId>
  <version>0.1.0</version>
 
  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.3.RELEASE</version>
  </parent>
 
  <properties>
    <java.version>1.8</java.version>
  </properties>
 
  <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>
 
  <build>
    <plugins>
      <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
      </plugin>
    </plugins>
  </build>
 
</project>

打包并啟動應用

?
1
mvn package && java -jar target/docker-app-0.1.0.jar

訪問 http://localhost:8080/ ,獲得響應:

?
1
docker app running

則spring boot應用啟動成功

創建Dockerfile文件

Dockerfile是一個文本文件,類似shell腳本,其內包含了一條條的指令。每一條指令的內容,就是描述對應的鏡像層應當如何構建。

Dockerfile位置:src/main/docker/Dockerfile

?
1
2
3
4
5
6
FROM frolvlad/alpine-oraclejdk8:slim
VOLUME /tmp
ADD docker-app-0.1.0.jar app.jar
RUN sh -c 'touch /app.jar'
ENV JAVA_OPTS=""
ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ]
  1. FROM 命令指定基礎鏡像,以一個鏡像為基礎,在其上進行定制。在這里我們的基礎鏡像是frolvlad/alpine-oraclejdk8:slim。
  2. VOLUME 定義匿名卷。對于可能需要操作數據庫類需要保存動態數據的應用,其數據文件應該保存在主句的卷,而不是容器的儲存層。在這里我們是將其掛載在了/tmp這個位置,從而保證了容器的無狀態化。
  3. ADD 命令是較高級的復制命令,將jar包復制到/app.jar
  4. ENTRYPOINT 容器運行后默認執行的命令

添加maven docker插件

docker maven插件是為了方便java開發者,由spotify公司開發的一款maven插件。添加以下代碼至pom.xml文件中。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<properties>
  <docker.image.prefix>ithaka</docker.image.prefix>
</properties>
<build>
  <plugins>
    <plugin>
      <groupId>com.spotify</groupId>
      <artifactId>docker-maven-plugin</artifactId>
      <version>0.4.11</version>
      <configuration>
        <imageName>${docker.image.prefix}/${project.artifactId}:${project.version}</imageName>
        <dockerDirectory>src/main/docker</dockerDirectory>
        <pushImage>true</pushImage>
        <resources>
          <resource>
            <targetPath>/</targetPath>
            <directory>${project.build.directory}</directory>
            <include>${project.build.finalName}.jar</include>
          </resource>
        </resources>
      </configuration>
    </plugin>
  </plugins>
</build>

注意,docker.image.prefix中的ithaka為我的docker hub 賬戶,使用時將其換成自己的

使用maven命令打包應用、構建docker鏡像并上傳鏡像到docker hub:

?
1
mvn package docker:build -DpushImage

此時我們將得到一個報錯:

[ERROR] Failed to execute goal com.spotify:docker-maven-plugin:0.4.11:build (default-cli) on project docker-app: Exception caught: denied: requested access to the resource is denied

這是因為我們在maven中push時,并沒有包含docker的用戶信息,所以權限校驗失敗。

解決方法為,在maven全局setting.xml配置中,添加docker hub server信息

?
1
2
3
4
5
6
7
8
<server>
    <id>docker-hub</id>
    <username>ithaka</username>
    <password>密碼</password>
    <configuration>
      <email>郵箱</email>
    </configuration>
</server>

在pom.xml中的docker-maven-plugi插件中,指定server

?
1
2
3
4
5
6
7
<plugin>
  <groupId>com.spotify</groupId>
  <artifactId>docker-maven-plugin</artifactId>
  <configuration>
    <serverId>docker-hub</serverId>
  </configuration>
</plugin>

再繼續執行

?
1
mvn package docker:build -DpushImage

出現

The push refers to a repository [docker.io/ithaka/docker-app]
8c02854cd300: Pushed
a03c3b5dbe04: Pushed
8018d52798bb: Pushed
1e6468b956ae: Pushed
3fb66f713c9f: Pushed

0.0.1: digest: sha256:63456345745755577c19103dcf4838894e34d45a68a1ec23b2f69d6f059 size: 1375

即為上傳docker hub成功。

啟動docker容器

在另外一臺機器上,執行命令

?
1
docker run -p 8080:8080 -t ithaka/docker-app

訪問http://ip:8080/ ,獲得響應:

?
1
docker app running

docker應用啟動成功

參考文檔:

Spring Boot with Docker

docker-maven-plugin

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:https://segmentfault.com/a/1190000009618531

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 在线观看一区二区精品 | 亚洲成人一区 | 久久久成人精品 | 99国产精品99久久久久久 | 国产美女在线播放 | 日韩视频免费 | 日韩欧美国产一区二区三区 | 99热在线播放 | 日韩电影一区二区三区 | 蜜桃av一区二区三区 | 精品一区二区久久 | 欧美一区二区三区xxxx监狱 | 国产视频网 | av短片在线| 免费日韩精品 | 91在线影视 | 91久久国产露脸精品国产护士 | 免费欧美一级 | 久久久精品网站 | 欧美三级电影在线播放 | 亚洲激情视频 | 国产精品自产拍在线观看 | 综州合另类| 色综合久久久久 | 黄色中文字幕 | 91精品久久久久久久91蜜桃 | 国产欧美久久久久久 | 日韩视频在线免费播放 | 99在线播放 | 午夜电影| 日韩欧美在线免费观看 | 精品国产999 | 久久精品中文字幕 | 国产精品不卡av | 亚洲va中文字幕 | 亚洲精品乱码久久久久久金桔影视 | 欧美 亚洲 另类 激情 另类 | 日本在线小视频 | 午夜免费福利视频 | 欧美亚洲综合久久 | 欧美日韩成人在线观看 |