這一章咱們引入docker,採用docker容器的方式部署咱們的項目。前端
首先須要有一個linux環境,而且安裝 java 和 maven 以及 docker 環境,這個教程多如牛毛,再也不贅述。java
這裏以 kitty-monitor 爲例。linux
在 pom.xml 的 properties
中添加 Docker 鏡像名稱。git
<properties> <docker.image.prefix>kitty</docker.image.prefix> </properties>
在 plugins 中添加 Docker 構建插件配置。spring
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> <!-- Docker maven plugin --> <plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>1.0.0</version> <configuration> <imageName>${docker.image.prefix}/${project.artifactId}</imageName> <dockerDirectory>src/main/docker</dockerDirectory> <resources> <resource> <targetPath>/</targetPath> <directory>${project.build.directory}</directory> <include>${project.build.finalName}.jar</include> </resource> </resources> </configuration> </plugin> <!-- Docker maven plugin --> </plugins> </build>
在目錄src/main/docker
下建立 Dockerfile 文件,Dockerfile 文件用來講明如何來構建鏡像。docker
FROM openjdk:8-jdk-alpine VOLUME /tmp ADD kitty-monitor-1.0.0jar app.jar ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
這個 Dockerfile 文件很簡單,構建 Jdk 基礎環境,添加 Spring Boot Jar 到鏡像中,簡單解釋一下:後端
/tmp
的目錄,因爲 Spring Boot 使用內置的Tomcat容器,Tomcat 默認使用/tmp
做爲工做目錄。這個命令的效果是:在宿主機的/var/lib/docker
目錄下建立一個臨時文件並把它連接到容器中的/tmp
目錄java.security.egd
的系統屬性指向/dev/urandom
做爲 ENTRYPOINT將項目 kitty-monitor 拷貝服務器中,如我這裏上傳到 /usr/kitty/ 目錄下服務器
進入項目根路徑,執行如下命令進行打包。app
#打包
mvn package
編譯成功dom
編譯成功以後,查看 target 目錄下面正常生成了 jar 包。
執行如下命令啓動應用。
#啓動 java -jar target/kitty-monitor-1.0.0.jar
啓動過程。
啓動成功以後訪問 服務器:端口號 ,出現以下界面。
執行如下命令,構建docker鏡像。
mvn package docker:build
出現以下界面就說明鏡像構建成功了。
經過
命令查看構建好的鏡像。
docker images
咱們看到的 kitty/kitty-monitor 就是咱們構建好的鏡像。
執行如下命令啓動一個docker容器。
docker run -p 8000:8000 -d kitty/kitty-monitor
說明:
-p 8000:8000 將主機端口映射到容器端口
-d 啓用後臺進程運行程序
經過如下命令,能夠查看運行中的容器。
docker ps
啓動成功以後,訪問 主機:端口號訪問監控服務頁面,顯示正常。
java -jar XXX.jar #前臺啓動,退出命令行服務就中止了
java -jar xxx.jar & #後臺啓動,終端退出後仍繼續運行
java -jar xxx.jar > catalina.out 2>&1 & #重定向控制檯輸出到日誌文件
說明:
catalina.out將標準輸出指向制定文件catalina.out文件,能夠自定義文件名稱。
2>&1 輸出全部的日誌文件
& 表示後臺啓動程序
ps -ef|grep 'java -jar' #查看運行中的進程
jobs #查看後臺任務
kill %num #經過jobs命令查看job號(假設爲num),而後執行kill %num
kill pid #經過ps命令查看job的進程號(PID,假設爲pid),而後執行kill pid
爲了方便利用docker部署,這裏對代碼進行一些重構。
將kityy-pom, kitty-boot工程的內容合併到kitty-admin, 合併以後刪除。
重構以後,代碼結構以下圖所示。
重構以後,同理將備份服務和權限管理系統服務使用docker部署。
後端:https://gitee.com/liuge1988/kitty
前端:https://gitee.com/liuge1988/kitty-ui.git
做者:朝雨憶輕塵
出處:https://www.cnblogs.com/xifengxiaoma/ 版權全部,歡迎轉載,轉載請註明原文做者及出處。