【玩轉Docker容器 3】基於Docker部署SpringBoot項目


推薦個人Docker文章,講的非常詳細

【玩轉Docker容器 1】Dockerd的詳解及安裝
【玩轉Docker容器 2】基於Docker一分鐘搭建完 Jdk、Mysql、Nginx、Redis、Tomcat環境
【玩轉Docker容器 3】基於Docker部署SpringBoot項目
【玩轉Docker容器 4】基於Docker搭建Docker私服,以及如何使用Docker私服詳解
【玩轉Docker容器 5】基於Docker搭建Maven私服,以及項目如何使用Maven私服詳解
【玩轉Docker容器 6】基於Docker構建GitLab管理代碼
【玩轉Docker容器 7】基於Docker安裝Jenkins實現自動化構建、部署、測試、監控項目

提供一個簡單的項目

有的話就可以自己部署自己的項目
在這裏插入圖片描述
我這裏提供一個簡單的基於SpringBoot開發的APP後端架構項目,
就是連接了使用了Redis和mysql,使用了JWT 生成Token使用Shiro實現了登錄等一些軟件必須有的接口

鏈接:https://pan.baidu.com/s/1LZtHSyXYwodQqYm6i_sMvQ
提取碼:hsjp

我已經封裝成jar包了,沒有項目測試部署可以下載下來試試看,第一步操作我已經做完了

1.修改application.yml或者application.properties文件

把端口號,nysql,redis的地址及密碼等 ,一些需要動態改變的地址改成類似於

# 端口號
server:
  port: ${port:8888}

在這裏插入圖片描述
在這裏插入圖片描述
爲什麼要改成這樣?
如果我們不改這些都是採用硬編碼的方式進行編寫,所以我們要讓端口、URL地址採用動態改變。在部署的時候進行填寫

改成這樣其實本機還是可以運行的

2.打包成jar包

點擊右上角,找到package 打包
在這裏插入圖片描述

3.上傳項目到linux中

#創建文件夾 以及進入文件夾
mkdir /opt/dockerapp
cd /opt/dockerapp

在這裏插入圖片描述
輸入rz上傳jar包至 /opt/dockerapp中

rz

在這裏插入圖片描述

4. 製作Docker鏡像

上傳完後切記:整個過程一定要在/opt/dockerapp文件夾中操作

在此文件夾輸入命令:(實現對Dockerfile文件進行編輯,添加如下所示命令。)
vi Dockerfile

在此文件中填入
FROM java:8												#指定java8環境鏡像
COPY ./lijie-example-boot-2.0.jar /app-springboot.jar	#將當前目錄下的jar文件拷貝到特定目錄
COPY ./app-entrypoint.sh /								#再拷貝一個腳本文件
RUN chmod +x /app-entrypoint.sh							#再給這個腳本文件設置一個可執行的權限。
ENTRYPOINT ["/app-entrypoint.sh"]						#運行此文件配置容器啓動後執行的命令

在這裏插入圖片描述

編寫pp-entrypoint.sh文件編輯,添加如下所示命令。
vi app-entrypoint.sh

在此文件輸入:(注:下面諸如$PORT是在使用docker create創建容器時設置的環境變量)
重點:(這裏是配置那些屬性需要動態的賦值,在底下創建容器時指定)
#!/bin/bash
java -jar -Dport=$PORT -DmysqlHost=$MYSQLHOST -DmysqlPassword=$MYSQLPASSWORD -DredisHost=$REDISHOST -DredisPort=$REDISPORT -DredisPassword=$REDISPASSWORD -DuploadPath=$UPLOADPATH /app-springboot.jar

在這裏插入圖片描述

在此輸入構建鏡像命令:(後面的:1.0  是自定義版本)
docker build -t lijie-example-boot-2.0.jar:1.0 .

在這裏插入圖片描述

查看創建的鏡像
docker images

在這裏插入圖片描述

5.創建Docker容器

創建容器命令:(這裏是動態的賦值配置文件)
根據自己實際情況來賦值,注意

創建容器命令:(這裏是動態的賦值配置文件)
docker create --name app-springboot -t -p 8080:7000 -e PORT=7000 -e MYSQLHOST=120.77.0.58:3303/lijie -e MYSQLPASSWORD=123456 -e REDISHOST=120.77.0.58 -e REDISPORT=16379 -e REDISPASSWORD='' -e UPLOADPATH=/opt/java/uploadImage lijie-example-boot-2.0.jar:1.0

在這裏插入圖片描述

查看所有容器
docker ps -a

在這裏插入圖片描述

6.啓動自己創建的Docker容器

找到我們自己的項目容器id,運行下面命令
docker start 容器id運行

在這裏插入圖片描述

查看容器日誌看一下,是否成功
docker logs 容器id

在這裏插入圖片描述
發現已經成功啓動了,端口號就是自己創建容器是定義的端口號

7.外網訪問項目

1.先找到Linux的lp地址,如果知道IP地址就跳過

如果是虛擬機先關閉防火牆
systemctl stop firewalld

輸入ifconfig查看IP地址
ifconfig

在這裏插入圖片描述

如果是阿里雲服務器,找到自己的服務器公共IP地址,並且打開開放8080端口號
具體步驟訪問:阿里雲服務器配置外網訪問,打開8080端口
在這裏插入圖片描述

配置好了上面後即可訪問項目,此項目只有後端
輸入:(IP地址+端口號+/doc.html) 即可查看後端接口
例如 http://120.77.0.34:8080/doc.html
在這裏插入圖片描述

8.測試項目

此項目只能查看後端,這是給app提供的java後端項目

除了倆個登錄接口(後端登錄,app登錄)的token是可以隨便填寫的,其他的接口需要使用的話,必須登錄後拿去正確的token纔可使用

1.下面是測試登錄接口(用戶名:admin 密碼:123456 token隨便填)
在這裏插入圖片描述

而其他接口的話,就需要正確的token纔可訪問,例如
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章