Docker容器之最小JDK基础镜像 原

一、说明    

    1、使用的是Oracle的JRE不是openjdk。

    2、因为java依赖glibc,所以基础镜像使用的是alpine-glibc而非alpine,alpine-glibc大概是11.1M。

二、制作

    1、首先下载jre,下载地址是https://www.java.com/en/download/manual.jsp,大概是77M。

    2、解压jre包,删除根目录下文本文件,然后删除其他不必要文件。

#解压
tar xvcf jre-8u161-linux-x64.tar.gz
#进入目录
cd jre1.8.0_161/
#删除文本文件
rm -rf COPYRIGHT LICENSE README release THIRDPARTYLICENSEREADME-JAVAFX.txtTHIRDPARTYLICENSEREADME.txt Welcome.html
#删除其他无用文件
rm -rf     lib/plugin.jar \
           lib/ext/jfxrt.jar \
           bin/javaws \
           lib/javaws.jar \
           lib/desktop \
           plugin \
           lib/deploy* \
           lib/*javafx* \
           lib/*jfx* \
           lib/amd64/libdecora_sse.so \
           lib/amd64/libprism_*.so \
           lib/amd64/libfxplugins.so \
           lib/amd64/libglass.so \
           lib/amd64/libgstreamer-lite.so \
           lib/amd64/libjavafx*.so \
           lib/amd64/libjfx*.so

    3、重新打包所有文件(不打包也可以,在Dockerfile里ADD这个目录即可,当前精简完jre目录大小是107M,压缩后是41M)

tar zcvf jre8.tar.gz *

    4、创建Dockerfile

# using alpine-glibc instead of alpine  is mainly because JDK relies on glibc
FROM docker.io/jeanblanchard/alpine-glibc
# author
MAINTAINER scc <shangchengcai@voole.com>
# A streamlined jre
ADD jre8.tar.gz /usr/java/jdk/
# set env
ENV JAVA_HOME /usr/java/jdk
ENV PATH ${PATH}:${JAVA_HOME}/bin
# run container with base path:/opt
WORKDIR /opt

    5、构建(整体大小是122M)

docker build -t voole/java8:1.0 .

    6、测试运行

# docker run -it voole/java8:1.0
/opt # java -version
java version "1.8.0_161"
Java(TM) SE Runtime Environment (build 1.8.0_161-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏用户画像

中断向量 中断向量表

1、中断标识码(中断类型号):由硬件(通常是中断控制器)产生,以标识不同的中断源。

1053
来自专栏数据和云

YH12:一篇文章读懂SCAN

单客户端访问名称(SCAN)是Oracle RAC环境中使用的功能,为客户端提供访问集群中运行的任何Oracle数据库的单一名称。 用户可以将SCAN视为RAC...

3556
来自专栏finleyMa

docker学习系列2 保存对容器的修改

注意: 经查,不推荐更改运行中的容器配置,容器本身是无状态的,当然也可以通过进入容器内部的方式进行更改: docker exec -it 这样的更改是无法持久...

1.7K1
来自专栏恰同学骚年

Java微服务之Spring Boot on Docker

本文学习前提:Java, Spring Boot, Docker, Spring Cloud

2454
来自专栏实战docker

Docker下dubbo开发,三部曲之二:本地环境搭建

在上一篇文章《Docker下dubbo开发,三部曲之一:极速体验》中,我们快速体验了dubbo服务的注册、发现、调用,今天我们一起在本地制作一套这样的环境,经过...

3317
来自专栏散尽浮华

python报错问题解决:'ascii' codec can't encode character

之前部署了openstack虚拟化环境,有一天在使用nova list查看虚拟机的时候,突然报错!如下: [root@linux-node1 src]# nov...

2146
来自专栏编程坑太多

『中级篇』Docker Compose到底是什么(38)

PS:上节通过image 和container的方式创建wordpress,一般麻烦吧还不算特别麻烦,但是相比今天的docker-compose.yml来说,还...

1564
来自专栏linux运维学习

linux学习第十九篇:压缩介绍,gzip,bzip2,xz压缩工具

file命令可查看文件是压缩文件或者test文件等,如file 1.txt 可查看1.txt是什么类型的文件 linux压缩打包介绍 在windows下我们接...

2477
来自专栏散尽浮华

完整部署CentOS7.2+OpenStack+kvm 云平台环境(4)--用OZ工具制作openstack镜像

在部署openstack云平台环境的时候,需要上传镜像到glance。 首先下载iso镜像,这里下载了centos6.5镜像,放到/usr/local/src目...

3939
来自专栏大魏分享(微信公众号:david-share)

Look,容器中应用的构建方法!

S2I增量构建重用以前构建的image中的工件 要创建增量构建,请修改BuildConfig策略定义:

1483

扫码关注云+社区

领取腾讯云代金券