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纔可訪問,例如