前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Docker 封装java镜像

Docker 封装java镜像

作者头像
py3study
发布2020-03-09 13:39:30
3.9K0
发布2020-03-09 13:39:30
举报
文章被收录于专栏:python3python3

一、概述

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

代码语言:javascript
复制
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就简单多了。

创建目录

创建应用目录,文件如下:

代码语言:javascript
复制
.
├── Dockerfile
└── RMS.jar

Dockerfile

代码语言:javascript
复制
FROM mayan31370/openjdk-alpine-with-chinese-timezone:8-jdk
ADD RMS.jar .
EXPOSE 8080
ENTRYPOINT [ "java", "-jar", "RMS.jar" ]

注意:这个jar启动,会监听8080端口。

RMS.jar是已经打包好的java应用。

生成镜像

代码语言:javascript
复制
docker build -t rms .

启动镜像

代码语言:javascript
复制
docker run -it -p 8080:8080 rms /bin/bash

输出:

代码语言:javascript
复制
.   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: 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)

访问页面

代码语言:javascript
复制
# curl 127.0.0.1:8080
{"timestamp":1572509686431,"status":200,"error":"","message":"Null","path":"/"}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-03-07 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、概述
  • 二、jdk镜像
  • 三、封装java镜像
    • 创建目录
      • 生成镜像
        • 启动镜像
          • 访问页面
          相关产品与服务
          容器镜像服务
          容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档