前言:
本來是要搭建一個自動化部署分布式項目的服務器平台的,使用jenkins+k8s+ELK+springboot把一個簡單的springboot項目給搞起來,由於工程太大,先分開把每個技術組件單獨給擼一遍過去再說。全擼一遍過去后,再來整合搭建這個浩大的全方位服務器自動部署工程。
唉,先用Docker發布一個springboot鏡像demo練練手吧。
借鑒博客:https://www.imooc.com/article/44582
借鑒博客(此博客有連接數據庫):https://segmentfault.com/a/1190000013096870
准備環境:
【注意:搞這些東西的時候一定要關閉服務器的防火牆】
CentOS7服務器一台:192.168.26.233 (服務器上安裝docker就不多說了)
springboot項目的demo一個:thymeleaf-master (以前用來測試thymeleaf技術的一個小demo項目,正好拿來用)
第一步:准備測試的springboot項目:thymeleaf-master
1、thymeleaf-master項目的指定啟動端口為:8082
2、thymeleaf-master項目本地啟動后的頁面:
3、把此項目打成jar包,操作如下圖:
第二步:docker把jar包構建成鏡像:
1、把上面打好的jar包,上傳到CentOS服務器上,我在服務器上新建了目錄/usr/local/dev/docker/testProject/,把jar包丟到testProject目錄里,再建一個Dockerfile文件,此文件是來用構建鏡像的配置,如下圖:
2、Dockerfile配置文件的內容:
FROM java:8
VOLUME /tmp
ADD thymeleaf-master-1.0-SNAPSHOT.jar /thymeleaf-master.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/thymeleaf-master.jar"]
3、執行docker構建鏡像命令:
#thymeleaf-master表示生成鏡像的名稱,(注意后面有個點.)
docker build -t thymeleaf-master .
4、查看打成的鏡像是否存在:(可以看到有兩鏡像,已經成功了。docker.io/java估計是docker自動打成的jar包運行環境jdk8鏡像)
5、運行剛才構建成的鏡像:
#這里我項目用的8082端口,這里我也映射8082端口,加上--name xxx是為了給容器取別名,方便docker命令操作
docker run -d -p 8082:8082 --name thymeleaf-master thymeleaf-master
6、瀏覽器打開ip:8082端口,查看:
=============2019年11月10日更新==============================
項目變成容器運行在docker里,怎么查看項目日志:
容器日志命令查看:表示查看容器名為thymeleaf-master的500行日志
docker logs -f -t --tail 500 thymeleaf-master