Docker(七):使用Dockerfile爲Spring Boot應用構建Docker Image

一. 應用場景
    假設現在我們有一個單獨的基於Spring Boot開發的應用,如何將其部署到Docker容器上,並能正確的訪問到呢?這裏有兩種方式:

  1. 使用Maven插件(docker-maven-plugin)將Spring Boot應用打包爲Docker Image,並上傳到私有鏡像倉庫Docker Registry
  2. 使用Dockerfile爲Spring Boot應用構建Docker Image
    其中,第1種方式需要依賴自建的Registry鏡像倉庫,而第2種方式不需要依賴自建的鏡像倉庫,只需要應用的jar包和一個Dockerfile文件即可。

二. 擼起袖子就是幹

  1. 在src/main目錄下新建docker/Dockerfile文件
    在這裏插入圖片描述

  2. 編寫Dockfile

# 該鏡像需要依賴的基礎鏡像
FROM java:8
# 將當前目錄下的jar包複製到docker容器的/目錄下
ADD spring-boot-study-0.0.1-SNAPSHOT.jar /spring-boot-study.jar
# 在容器構建過程中創建一個spring-boot-study.jar文件,可以用該命令自定義容器的行爲,比如安裝一些軟件,創建一些文件等
RUN bash -c 'touch /spring-boot-study.jar'
# 聲明服務運行在9527端口(只聲明不會打開端口)
EXPOSE 9527
# 指定docker容器啓動時運行jar包
ENTRYPOINT ["java", "-jar","/spring-boot-study.jar"]
# 指定維護者的名字
MAINTAINER wanghong
  1. Maven打包應用
    在項目根目錄下,即pom.xml文件所在的目錄,執行以下命令:
mvn clean package -P dev

或者在IDEA中直接雙擊 package命令:
在這裏插入圖片描述

  1. 將應用jar包及Dockerfile文件上傳到Linux服務器

在這裏插入圖片描述

  1. 在Linux上構建docker鏡像
    在Dockerfile所在目錄執行以下命令:
# -t 表示指定鏡像倉庫名稱/鏡像名稱:鏡像標籤 .表示使用當前目錄下的Dockerfile
docker build -t hong/spring-boot-study:0.0.1-SNAPSHOT .

在這裏插入圖片描述

  1. 運行應用
docker run -p 9527:9527 --name spring-boot-study hong/spring-boot-study:0.0.1-SNAPSHOT

在這裏插入圖片描述

  1. 查看所有的容器
    在這裏插入圖片描述
  2. 如果中途有出錯,刪除鏡像和容器
docker rmi -f 鏡像ID
docker rm 容器ID

在這裏插入圖片描述

  1. 訪問服務
    在這裏插入圖片描述
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章