Centos8.3、docker部署springboot項目實戰案例分析
引言
目前k8s很是火熱,我也特意買瞭本書去學習瞭一下,但是k8s動輒都是成百上千的服務器運維,對隻有幾臺服務器的應用來說使用k8s就有點像大炮打蚊子。隻有幾臺服務器的應用運維使用傳統的tomcat部署很繁瑣,效率不高,動輒十幾分鐘部署一臺服務,使用jenkins部署又太過復雜,斟酌許久我還是選擇瞭使用docker+dockerFile的方式部署。這種方式部署簡單高效。
docker安裝
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun #一鍵安裝腳本 systemctl enable docker.service #設置docker開機啟動 systemctl restart docker.service #啟動docker服務
開啟docker遠程訪問端口
編輯/usr/lib/systemd/system/docker.service文件添加-Htcp://0.0.0.0:12375 -H unix://var/run/docker.sock 如下圖:
保存文件後重新加載配置然後重新啟動
systemctl daemon-reload # 重新加載配置 systemctl restart docker.service # 重啟docker服務
註意:-Htcp://0.0.0.0:12375 這句話的意思任意ip都可以使用tcp訪問這個端口可以根據實際情況匹配IP。因為這裡沒有token或者密鑰所以要特別註意如果使用雲服務器那麼強烈建議這裡設置為安全組IP白名單訪問。我當初在測試環境使用docker發佈三四個小時就被人攻擊瞭不過當初我是用的2375端口,這個端口特別容易被攻擊。
配置IDEAdocker環境
idea安裝docker環境插件如下圖:
安裝完成後重啟idea然後打開springboot項目,在根目錄創建Dockerfile文件。如下圖:
編輯Dockerfile如下:
FROM openjdk:11 # 鏡像是從 openjdk:11-jdk-alpin 繼承而來的 VOLUME /root/tmp # 表示掛載瞭 /root/tmp 目錄到容器中 ADD build/libs/brief-plus-0.0.1-SNAPSHOT.jar apprun.jar # 將bootJar 添加到鏡像中根目錄下 命令為 apprun.jar ENTRYPOINT ["java","-jar","/apprun.jar"] # ENTRYPOINT 在容器啟動後執行 java 命令來運行程序 # 設置容器時間 ENV TZ=Asia/Shanghai RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone # ======= 其它的一些Dockerfile命令 ========== 這裡我們沒有用到不過還是提一下 #COPY package.json /usr/src/app/ #ADD 更高級的復制文件 #ADD 指令和 COPY 的格式和性質基本一致。但是在 COPY 基礎上增加瞭一些功能。 #CMD 指令就是用於指定默認的容器主進程的啟動命令的。 #ENV 設置環境變量 #HEALTHCHECK 健康檢查 #EXPOSE 指令是聲明運行時容器提供服務端口,這隻是一個聲明,在運行時並不會因為這個聲明應用就會開啟這個端口的服務 EXPOSE 8090
主要註意build/libs/brief-plus-0.0.1-SNAPSHOT.jar apprun.jar 這句話。 我是用的gradle編譯後的文件位於build/libs/ 目錄下 如下圖:
maven編譯後的文件位於target目錄下如下圖:
Dockerfile是根據具體的目錄和打包後的名稱來獲取生成鏡像文件所以這裡一定不能出錯。
配置Docker服務
配置運行環境
創建一個tcp連接服務
3.配置發佈到docker的服務
綁定端口ip的詳細配置
打包發佈
心得建議
1.docker的鏡像文件會分塊,每塊都有自己的簽名,每次上傳會進行對比差異的文件才會重新上傳。
2.每次上傳的時候記得更改標簽方便根據標簽進行回滾。
3.修改服務器的網絡配置、防火墻需要重啟docker服務。
docker 常用命令:
重啟docker
systemctl restart docker # 重啟docker服務 systemctl daemon-reload # 重新加載docker配置
查看30分鐘內的日志
docker logs --since 30m id
以上就是Centos8.3、docker部署springboot項目實戰記錄的詳細內容,更多關於docker部署springboot項目的資料請關註WalkonNet其它相關文章!
推薦閱讀:
- IDEA 配合 Dockerfile 部署 SpringBoot 工程的註意事項
- IDEA通過Docker插件部署SpringBoot項目的過程詳解
- IDEA使用Docker插件(菜鳥教程)
- idea整合docker快速部署springboot應用的詳細過程
- Springboot服務Docker化自動部署的實現方法