天天看點

本文簡單介紹利用springboot jar包打docker鏡像并運作基礎鏡像使用javaVOLUME 指定了臨時檔案目錄為/tmp。其效果是在主機 /var/lib/docker 目錄下建立了一個臨時檔案,并連結到容器的/tmp将jar包添加到容器中并更名為app.jar定義jvm參數變量

首先附上DockerFile檔案

基礎鏡像使用java

FROM openjdk:8-alpine

VOLUME 指定了臨時檔案目錄為/tmp。

其效果是在主機 /var/lib/docker 目錄下建立了一個臨時檔案,并連結到容器的/tmp

VOLUME /tmp

将jar包添加到容器中并更名為app.jar

ADD sinosig-0.0.1-SNAPSHOT.jar app.jar

定義jvm參數變量

ENV JAVA_OPTS="-XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=128m -Xms1024m -Xmx1024m -Xmn256m

-Xss256k -XX:SurvivorRatio=8

-XX:+UseConcMarkSweepGC -XX:+PrintGCDateStamps -Xloggc:/logs/gc.log"

ENTRYPOINT java ${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom -jar -Duser.timezone=GMT+08 /app.jar

先更新github上的代碼,執行mvn clean package打jar包,然後将jar包複制到DockerFile同級的檔案夾下,執行docker build -t springbootimages --rm=true . 進行打鏡像操作(--rm=true .意為删除産生的中間鏡像),打好鏡像後,執行docker run -d -p 8088:8088 --name myWebSite -v /root/springboot/dockerLogs:/logs/ -v /etc/localtime:/etc/localtime springbootimages來啟動鏡像

-Duser.timezone 意為設定時區,由于openjdk:8-alpine沒有提供時區,在列印日志等操作時會有時間問題,是以設定時區為上海

-d 背景運作

-p 端口映射

--name 給容器起名

-v 檔案挂載,将容器内的日志輸出挂載到伺服器指定路徑上,并将伺服器的時間用于容器的時間