首先我們將一個簡單的Springboot項目打包成jar
然后將項目上傳至Linux系統(tǒng)
系統(tǒng)提前裝好docker環(huán)境
測試docker版本:
docker -v
首先我們將準備的xxx.jar,Dockerfile
拷貝到我們的CentOS 7
機器上
下圖idea 進行打好的包
我們拷貝的路徑為:
/usr/local/dev
編寫的Dockerfile文件為:
FROM openjdk:8-jdk-alpine
VOLUME /tmp
ADD spring-boot-docker.jar app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
上面命令的相關解釋:
- 從docker倉庫獲取
openjdk
作為我們項目的容器 -
VOLUME
指向了一個/tmp
的目錄驰弄,由于Spring Boot使用內(nèi)置的Tomcat容器,Tomcat默認使用/tmp
作為工作目錄落追。效果就是在主機的/usr/local/dev目錄下創(chuàng)建了一個臨時文件,并連接到容器的/tmp
涯肩。 - 項目的
dspring-boot-docker.jar
作為app.jar
添加到容器轿钠。 -
ENTRYPOINT
執(zhí)行項目app.jar
。為了縮短 Tomcat 啟動時間病苗,添加一個系統(tǒng)屬性指向/dev/urandom
作為 Entropy Source
構建Docker鏡像
我們在/usr/local/dev目錄下疗垛,執(zhí)行Docker
的命令來構建鏡像。
docker build -t ludashi/spring-boot-docker-t:latest .
這個命令就是使用Docker
的build
命令來構建鏡像硫朦,并給鏡像起了一個名字ludashi/spring-boot-docker-t其TAG
為latest
在當前文件夾下贷腕。
我們使用docker images
來查看所有的鏡像
docker images
我們發(fā)現(xiàn)鏡像列表里面有我們生成的鏡像ludashi/spring-boot-docker-t
運行鏡像
鏡像構建成功之后,就可以運行容器了:
docker run -d --name spring-boot-docker -p 8899:8899 ludashi/spring-boot-docker-t
這個表示docker容器在停止或服務器開機之后會自動重新啟動 --restart=always 這塊可不執(zhí)行
docker run -d --restart=always --name spring-boot-docker -p 8899:8899 ludashi/spring-boot-docker-t
如果docker run 的時候沒有加 --restart=always ,然后已經(jīng)運行的docker容器怎么設置自動重啟泽裳? 執(zhí)行下面命令:
docker update --restart=always spring-boot-docker
然后docker ps 看看你的容器有沒有在運行即可
docker ps
docker logs --tail 300 -f spring-boot-docker-t 查看啟動日志
docker logs --tail 300 -f spring-boot-docker
訪問瀏覽器:
OK芽世!