簡單dockerfile掛載springboot項目 + 簡單啟停shell腳本


一、項目掛載:

一個springboot小項目,通過容器化方式部署。當修改工程源碼后打包成jar,不想每次都重新進行docker build生成新的鏡像,則采用掛載方式,dockerfile如下:

# 容器化部署方案
# Docker image for springboot file run
# VERSION 0.0.1
# Author: zhaoxx
# #################################################################### #
# Description:
# 1、如使用docker部署,當前文件需要放到服務器/home/docker/路徑下
# 2、當前工程生成的jar也要放到/home/docker/路徑下
# 3、構建鏡像:docker build -t similarity-processor .
# 4、啟動容器:docker run -d -p 8080:8080 -v /home/similarity-processor:/home/similarity-processor similarity-processor
#
# 后續啟動:docker start 鏡像名稱
# 后續停止:docker stop 鏡像名稱
# 或者可視化插件中停止與啟動
# #################################################################### #

# 基礎鏡像使用java
FROM java:8

# 聲明運行時容器的端口,對應項目端口
EXPOSE 8080

# 創建一個可以從本地主機或其他容器掛載的掛載點,一般用來存放數據庫和需要保持的數據等
VOLUME /home/similarity-processor

# 將jar包添加到容器中,可以更名,后者為容器中jar
#ADD similarity-processor-1.0.jar similarity-processor-1.0.jar

# 指定工作目錄
WORKDIR /home/similarity-processor
# 時區調整
RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
# sh -c是將后面命令視為一個整體,touch命令實則改變了jar的時間,並無其它意義
RUN sh -c 'touch similarity-processor-1.0.jar'

# 此處命令為啟動容器
# "-Djava.security.egd=file:/dev/./urandom"java參數,可靠的產生隨機數,此處目的是加快系統啟動,如果存在tomcat建議使用此參數
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","similarity-processor-1.0.jar"]

dockerfile中注釋已經明確,第一次需要構建鏡像,同時執行“docker run -d -p 8080:8080 -v 自定義存放目錄:VOLUME目錄 自定義鏡像名稱”啟動容器,后續更改了jar后,只需把jar放到自定義存放目錄即可

然后執行“docker restart 容器名稱”

二、簡單啟停shell腳本

1、清除docker日志腳本:cleanLog.sh

# 清除日志
ret=`docker ps -a | grep 容器名 | awk '{print $1}'`
ret=`ls /var/lib/docker/containers/ | grep "${ret}"`
>/var/lib/docker/containers/${ret}/${ret}-json.log

2、啟動容器腳本:startDocker.sh

# 啟動xxx容器程序
ret=`docker start $(docker ps -a | grep 容器名 | awk '{print $1}')`

# 自動顯示docker日志
docker logs -f --tail=500 ${ret}

3、停止容器腳本:stopDocker.sh

# 停止xxx容器程序
ret=`docker stop $(docker ps -a | grep 容器名 | awk '{print $1}')`

# 顯示當前docker運行中容器
docker ps

4、未停止情況下重新啟動容器:restartDocker.sh

# 重新啟動xxx容器程序
ret=`docker restart $(docker ps -a | grep 容器名 | awk '{print $1}')`

# 自動顯示docker日志
docker logs -f --tail=500 ${ret}

 5、進入容器(退出時不會停止容器):

# 進入xxx容器程序
ret=`docker restart $(docker ps -a | grep 容器名 | awk '{print $1}')`

docker exec -it ${ret} /bin/bash

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM