溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

使用Docker部署 spring-boot maven應(yīng)用的方法

發(fā)布時(shí)間:2020-09-20 20:21:02 來(lái)源:腳本之家 閱讀:152 作者:Ramer-F 欄目:服務(wù)器

本文介紹了使用Docker部署 spring-boot maven應(yīng)用,分享給大家,具體如下:

部署過程分為以下幾個(gè)步驟:

  1. 創(chuàng)建一個(gè)簡(jiǎn)單的spring-boot應(yīng)用
  2. 打包運(yùn)行應(yīng)用
  3. 容器化應(yīng)用
  4. 在pom文件中添加docker支持
  5. 創(chuàng)建docker鏡像
  6. 運(yùn)行docker容器
  7. 查看正在運(yùn)行的容器
  8. 啟動(dòng)/關(guān)閉/重啟/刪除docker容器

1. 創(chuàng)建一個(gè)簡(jiǎn)單的spring-boot應(yīng)用

在IntelliJ IDEA中File->New->Project:

使用Docker部署 spring-boot maven應(yīng)用的方法

使用Docker部署 spring-boot maven應(yīng)用的方法

然后點(diǎn)Next->Finish.

2. 打包運(yùn)行應(yīng)用

pom.xml中添加依賴:

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-web</artifactId>
</dependency>

添加一個(gè)控制器:

@Controller
public class HelloWorld{
  @GetMapping("/hello")
  public void helloworld(HttpServletResponse response) throws IOException {
    response.getWriter().write("Hello Spring-boot");
  }
}

運(yùn)行項(xiàng)目,訪問: http://localhost:8080/hello,如果出現(xiàn): Hello Spring-boot 第二步完成.

3. 容器化應(yīng)用

在項(xiàng)目目錄創(chuàng)建Dockerfile文件: src/main/docker/Dockerfile(沒有后綴),內(nèi)容如下:

FROM frolvlad/alpine-oraclejdk8:slim
VOLUME /tmp
ADD demo-0.0.1-SNAPSHOT.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" ]

其中 demo-0.0.1-SNAPSHOT.jar 是項(xiàng)目打包后 /target/ 里面的文件名

4. 在pom文件中添加docker支持

<properties>
  <docker.image.prefix>ramer</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}</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>
  </plugins>
</build>

5. 創(chuàng)建docker鏡像

cmd進(jìn)入到當(dāng)前目錄:

cd Z:/Desktop/springboot-demo

打包,創(chuàng)建鏡像:

mvn package -Dmaven.test.skip=true docker:build

注意: 請(qǐng)確保maven已添加到path中;并且已安裝docker,如果沒有安裝,請(qǐng)?jiān)L問: https://www.docker.com/community-edition#/download 下載合適的版本.

6. 運(yùn)行docker容器

##最好添加--name參數(shù)
docker run --name=springboot-docker-demo -p 8080:8080 -t ramer/demo

在瀏覽器訪問: http://localhost:8080/hello

7. 查看正在運(yùn)行的容器

cmd: docker ps

8. 啟動(dòng)/關(guān)閉/重啟/刪除docker容器

cmd: docker start/stop/restart/rm CONTAINER_ID/NAME 

其中:

CONTAINER_ID: 是容器id,執(zhí)行 docker ps 可查看

NAME: 是容器的名稱,也就是docker run –name后面的名字

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

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI