Docker部署jar包


方法一、直接構建jar包運行的鏡像

將項目打包,上傳到服務器的指定目錄

在該目錄下創建Dockerfile文件

vi Dockerfile

Dockerfile寫入如下指令

FROM openjdk:11
MAINTAINER bingo
ADD demo.jar demo.jar
EXPOSE 8888
ENTRYPOINT ["java","-jar","demo.jar"]

其中指令的含義:

FROM:基礎鏡像,FROM openjdk:11 指的是拉取一個openjdk:11的鏡像
MAINTAINER:作者,MAINTAINER bingo 作者是 bingo
ADD: 將打包的可執行jar包復制到鏡像中並重命名(用 COPY 也可),ADD demo.jar demo.jar將demo.jar 復制到鏡像中並重命名為 demo.jar
EXPOSE: 聲明端口
ENTRYPOINT : 容器啟動之后執行的命令,java -jar demo.jar 即啟動jar

創建好Dockerfile文件之后,執行命令 構建鏡像

docker build -t my-demo .

注意最后的 . 表示Dockerfile在當前文件目錄下。my-demo表示構建的鏡像,構建成功后可以使用docker images命令查看鏡像。

鏡像構建成功之后,就可以運行容器

docker run -d --restart=always --name demo -p 8080:8080 my-demo

其中參數的含義:
-d :后台運行容器,並返回容器ID
–restart=always :容器在停止或服務器開機之后會自動重新啟動
-p :指定端口映射, 和jar包端口一致
最后的 my-demo指定鏡像

啟動容器后可以使用 docker ps命令查看啟動的容器

docker logs --tail 300 -f 容器id ,可以查看服務的日志。

如果想更新jar包,只需要使用docker cp demo-0.0.1-SNAPSHOT.jar 容器ID:/demo.jar,就可以將demo-0.0.1-SNAPSHOT.jar拷貝進容器並重命名,然后 docker restart 容器ID 重啟容器。

方法二、基於jdk鏡像運行容器

在服務器中拉取openjdk:11的鏡像

docker pull openjdk:11

創建目錄,並將jar包上傳到該目錄
cd /home/xiaobai/workpace/jar

運行容器:在運行容器的命令里指定包的運行

docker run -d \
--restart=always \
-v /home/workpace/service/circlefk-service-0.0.1-SNAPSHOT.jar:/jar/circlefk-service-0.0.1-SNAPSHOT.jar \
-v /home/workpace/service/log/:/home/workpace/service/log/ \
-p 8099:8099 \
--name circlefk-service \
openjdk:11 java -jar \
-Duser.timezone=GMT+08 \
/jar/circlefk-service-0.0.1-SNAPSHOT.jar

上面命令的說明:
-Duser.timezone :指定時區
openjdk:11 java -jar :執行jar包
/jar/circlefk-service-0.0.1-SNAPSHOT.jar :指定需要執行的jar包的位置。
以后發布,只需要把宿主機目錄里的jar包替換掉,重啟容器。


免責聲明!

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



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