Docker 封装java镜像
2024-09-01 09:37:24
一、概述
目前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:-jdk
ADD RMS.jar .
EXPOSE
ENTRYPOINT [ "java", "-jar", "RMS.jar" ]
注意:这个jar启动,会监听8080端口。
RMS.jar是已经打包好的java应用。
生成镜像
docker build -t rms .
启动镜像
docker run -it -p : rms /bin/bash
输出:
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v1.5.9.RELEASE) -- ::02.517 [main] INFO com.iaicmt.rms.RmsApplication - Starting RmsApplication v1.-SNAPSHOT on e6c7908e56ab with PID (/RMS.jar started by root in /)
...
-- ::13.321 [main] INFO o.s.j.e.a.AnnotationMBeanExporter - Registering beans for JMX exposure on startup
-- ::13.549 [main] INFO o.s.b.c.e.u.UndertowEmbeddedServletContainer - Undertow started on port(s) (http)
-- ::13.570 [main] INFO com.iaicmt.rms.RmsApplication - Started RmsApplication in 12.483 seconds (JVM running for 14.623)
访问页面
# curl 127.0.0.1:
{"timestamp":,"status":,"error":"","message":"Null","path":"/"}
最新文章
- JS学习(二)
- Android View自动生成插件
- 短租app简析
- TDBAdvGrid 只读状态下复制功能
- CSS3圆角气泡框,评论对话框
- FullPage.js全屏滚动插件的配置项、方法和回调函数
- 怎么用visual studio2010编写c++程序|用visual studio2010编写c++程序的步骤
- 浏览器文档播放Shockwave Flash 插件问题
- Delete Node in a Linked List leetcode
- Javascript 标识符及同名标识符的优先级
- netcore发布到 iis 设置 部署 环境 变量
- Hibernate入门(四)---------一级缓存
- onmouseover和onmouseenter区别
- xrange 和range的区别
- JS高级-***Function- ***OOP
- SDN 第二次作业
- java语言特性之一
- html5 移动适配写法
- org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): 问题解决方法
- ReentrantReadWriteLock读写锁的使用<;转>;
热门文章
- 【CF241E】Flights
- R = [obj for obj in recs[imagename] if obj[&#39;name&#39;] == classname] KeyError: &#39;007765&#39;
- [原创]STAR法则
- 【Python】[技术博客] 一些使用Python编写获取手机App日志的操作
- 使用MeadCo&#39;s ScriptX控件做WEB打印
- SpringBoot——配置文件加载位置及外部配置加载顺序
- Mini UI tree上万复杂节点加载缓慢处理设计
- string, byte[], Base64String相互转化
- 【PHP】使用phpoffice/phpspreadsheet导入导出数据
- Session覆盖测试(要验证码提交到后续页面操作的 绕过去的场景)