初試Docker 搭建SpringBoot 專案

海峽發表於2020-09-07

簡介

簡單介紹Spring專案使用Docker部署的過程。其中docder的各種好處與使用在這裡就不再介紹了。
大家可在這裡學習docker www.runoob.com/docker/docker-tutor...
步驟:本機安裝 docker -> 新建Spring專案 -> 建立docker file -> 建立映象 -> 本機測試 -> 上傳docker映象 -> 伺服器安裝 docker -> 拉取 docker -> 執行 docker.

環境

  • 本地環境:Windows8 , java1.8 , idea2017.1.3
  • 伺服器環境: cenos7.3

    docker 本地安裝(點選檢視)

    • 啟動docker
      在安裝目錄下開啟~\bash.sh檔案。如下表示成功

初試Docker 搭建SpringBoot 專案
開啟PowerShell工具,輸入docker images,可知查無映象。

建立Spring專案

初試Docker 搭建SpringBoot 專案

初試Docker 搭建SpringBoot 專案

初試Docker 搭建SpringBoot 專案
建立成功後, 新建一個TestController 並寫上一個簡單的介面

@GetMapping("/hello")
public String hello(){

    return "hello docker!";
}

執行專案,在瀏覽器中訪問介面

初試Docker 搭建SpringBoot 專案

  • 打包出 jar 包
    在專案的目錄下執行 mvn install , 可在tagrat 目錄下找到jar 如圖:

初試Docker 搭建SpringBoot 專案

建立 Dockerfile配置

Dockerfile的建立位置就是在專案的根目錄下,與pom.xml平級。在這裡我建立了一個名為dockerfile的檔案,無需字尾。
檔案內容:

#依賴的基礎映象jdk8
FROM java:8
#需要暴露出去的埠,也就是我專案的埠
EXPOSE 8080
#作者資訊
MAINTAINER haile
#將主機環境的jar包,以檔名demo.jar新增到docker映象中。就是因為這條命令,mavnen執行報錯
ADD /target/demo-0.0.1-SNAPSHOT.jar dockerdemo.jar
#啟動容器之後,預設的執行命令
ENTRYPOINT ["java","-jar","dockerdemo.jar"]

然後在Dockerfile同級目錄下使用命令docker build -t dockerfile .,生成之後使用docker images可以檢視到生成的dockerfile映象,如果是第一次將會較慢,需要下載jdk8的映象。

初試Docker 搭建SpringBoot 專案

建立容器

執行命令 docker run -p 6060:8080 -t dockerfile,建立一個映象例項,然後以宿主機的6060埠連結docker容器的8080埠。然後可以執行任意多個例項。能看到 Spring 專案執行成功!
初試Docker 搭建SpringBoot 專案
透過瀏覽器訪問宿主機ip和埠, 可正常訪問 。

初試Docker 搭建SpringBoot 專案

上傳映象

hub.docker.com/ 上註冊自己的賬號並建立倉庫,在這裡我建立了一個 haixia\dockerfile 倉庫,
初試Docker 搭建SpringBoot 專案
-上傳
先登入,輸入剛才的使用者名稱密碼。

docker login --username=haixia

上傳映象值hub倉庫
docker pull dockerfile
這裡你會發現 hub 倉庫,拒絕我們的請求,我們需要把映象名改成與hub一致。
docker tag 映象ID Docker ID/倉庫名:新的標籤名(tag)
docker tag bd213262aa2c haixia/dockerfile:latest

初試Docker 搭建SpringBoot 專案

然後在 docker pull haixia/dockerfile 可成功!

伺服器端安裝與部署

Cenos Docker 安裝
Docker 支援以下的 64 位 CentOS 版本:

安裝完成後 docker 預設是關閉的! 透過命令開啟
sudo systemctl start docker
登入並下載映象檔案

$ docker login --username=haixia
$ docker pull haixia/dockerfile

初試Docker 搭建SpringBoot 專案
檢視映象

[root@iZf0ksq5sifurtZ /]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
haixia/dockerfile   latest              665c5b2652fb        3 days ago          661MB
[root@iZf0ksq5sifurtZ /]# 

接下來就可以執行執行映象檔案了

 docker run -p 6060:8080 -t haixia/dockerfile

將伺服器的 6060 端指向 docker 的8080 埠。

初試Docker 搭建SpringBoot 專案

瀏覽器 訪問 ip+埠/hello,表示成功!

初試Docker 搭建SpringBoot 專案

結語

已初叔完成 docker 的使用。後續將繼續研究 spring + mysql +redis 的 docker 部署。

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章