Docker 封裝java鏡像


一、概述

目前java采用的框架是Spring,服務器直接通過

java -jar xxx.jar

就可以啟動服務了。

 

二、jdk鏡像

在docker中跑java應用,需要有jdk環境支持才行。

獲取jdk鏡像,有2種方式。

1. 自己制作jdk鏡像

2. 使用Docker Hub 現成的jdk鏡像。

 

首先說明一下,自己制作jdk鏡像。如果基礎鏡像采用centos,ubuntu,那么制作出來的鏡像會特別大。

Alpine只有5M,可以通過作為基礎鏡像,來制作鏡像。但是會有2個問題:1. 直接調用java命令會報錯。2. 時區不是中國時區。

基於2個問題,我采用的是2種方式。

https://hub.docker.com/r/mayan31370/openjdk-alpine-with-chinese-timezone/tags

 

這個鏡像,已經幫你解決了,上面2個問題。而且,鏡像本身,也做了優化。只有68M左右,非常小。

 

三、封裝java鏡像

有了jdk鏡像后,封裝java就簡單多了。

創建目錄

創建應用目錄,文件如下:

.
├── Dockerfile
└── RMS.jar

 

Dockerfile

FROM mayan31370/openjdk-alpine-with-chinese-timezone:8-jdk
ADD RMS.jar .
EXPOSE 8080
ENTRYPOINT [ "java", "-jar", "RMS.jar" ]

注意:這個jar啟動,會監聽8080端口。

 

RMS.jar是已經打包好的java應用。

 

生成鏡像

docker build -t rms .

 

啟動鏡像

docker run -it -p 8080:8080 rms /bin/bash

輸出:

 .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v1.5.9.RELEASE)

2019-10-31 16:10:02.517 [main] INFO  com.iaicmt.rms.RmsApplication - Starting RmsApplication v1.0-SNAPSHOT on e6c7908e56ab with PID 1 (/RMS.jar started by root in /)
...
2019-10-31 16:10:13.321 [main] INFO  o.s.j.e.a.AnnotationMBeanExporter - Registering beans for JMX exposure on startup
2019-10-31 16:10:13.549 [main] INFO  o.s.b.c.e.u.UndertowEmbeddedServletContainer - Undertow started on port(s) 8080 (http)
2019-10-31 16:10:13.570 [main] INFO  com.iaicmt.rms.RmsApplication - Started RmsApplication in 12.483 seconds (JVM running for 14.623)

 

訪問頁面

# curl 127.0.0.1:8080
{"timestamp":1572509686431,"status":200,"error":"","message":"Null","path":"/"}

 

 

 

 

 

 

 


免責聲明!

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



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