首先附上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 檔案挂載,将容器内的日志輸出挂載到伺服器指定路徑上,并将伺服器的時間用于容器的時間