注意:这里使用的是oracle的JRE,版本是1.8。

1、解压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

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

  tar zcvf jre8.tar.gz *

3、创建Dockerfile

# 基础镜像

FROM 内网ip/仓库名/alpine:3.10

# 作者

MAINTAINER xiaobao2

# 添加glibc依赖

RUN apk --no-cache add ca-certificates && \

  wget -q -O /etc/apk/keys/sgerrand.rsa.pub https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub && \

  wget https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.29-r0/glibc-2.29-r0.apk && \

  apk add glibc-2.29-r0.apk

# 安装jre

ADD jre8.tar.gz /usr/java/jdk/

# 设置变量

ENV JAVA_HOME /usr/java/jdk

ENV PATH ${PATH}:${JAVA_HOME}/bin

# 运行容器的工作目录

WORKDIR /opt 

4、构建(整体大小大概是125M)

docker build -t 内网ip/仓库名/java:8 .

5、测试运行

# docker run -it 内网ip/仓库名/java:8 /opt

# java -version

使用alpine制作最小化的JDK基础镜像的更多相关文章

  1. 支持HTTP2的cURL——基于Alpine的最小化Docker镜像

    cURL是我喜欢的开源软件之一.虽然cURL的强大常常被认为是理所当然的,但我真心地认为它值得感谢和尊重.如果我们的工具箱失去了curl,那些需要和网络重度交互的人(我们大多数人都是这样的)将会陷入到 ...

  2. docker学习系列-jdk基础镜像制作

    准备一台安装有docker服务的机器 1.编辑Dockerfile   vim Dockerfile FROM centos:latest ADD ./jdk-8u141-linux-x64.tar. ...

  3. docker 系列 - 基础镜像环境和Docker常用命令整理

    =======================docker 基础镜像环境 alpine=======================可以使用 docker search 命令搜索指定的 image, ...

  4. 使用jdk 容器镜像注意默认编码问题

    最近在使用一个开源数据pipeline 处理的工具的时候,发现了jdk容器镜像编码的一些问题 以下是一个简单的描述 问题 使用了streamsets 工具,使用容器运行,默认使用了adoptopenj ...

  5. alpine制作jdk、jre镜像、自定义镜像上传阿里云

    alpine制作jdk镜像 alpine Linux简介 1.Alpine Linux是一个轻型Linux发行版,它不同于通常的Linux发行版,Alpine采用了musl libc 和 BusyBo ...

  6. 测试环境docker化(一)—基于ndp部署模式的docker基础镜像制作

    本文来自网易云社区 作者:孙婷婷 背景 我所在测试项目组目前的测试环境只有一套,在项目版本迭代过程中,开发或产品偶尔会在测试环境进行数据校验,QA人数在不断增加,各个人员在负责不同模块工作时也会产生脏 ...

  7. 安装完最小化 RHEL/CentOS 7 后需要做的 30 件事情7. 安装 PHP PHP 是用于 web 基础服务的服务器端脚本语言。它也经常被用作通用编程语言。在最小化安装的 CentOS 中安

    CentOS 是一个工业标准的 Linux 发行版,是红帽企业版 Linux 的衍生版本.你安装完后马上就可以使用,但是为了更好地使用你的系统,你需要进行一些升级.安装新的软件包.配置特定服务和应用程 ...

  8. C#窗口皮肤制作(二):创建窗口库项目以及最小化、最大化、关闭button的实现

    非常高兴有朋友关注这篇博客,同一时候也十分抱歉让关注的朋友久等了,隔上一篇博客也有3个月没有更新,主要是因为3月份辞职,4月份初离职到期离开了北京高德,来到了上海张江.眼下新工作也处于熟悉其中,希望大 ...

  9. Winform 基础二 最小化 最大化 关闭 点击任务栏隐藏显示 点击鼠标左键移动窗体

    一 最大化 二 最小化 三 关闭 四 点击任务栏隐藏显示 五 点击鼠标左键移动窗体 六 阴影效果鼠标左键移动窗口 #region UI设置 最大化.最小化.关闭.鼠标移动窗口.点击任务栏切换窗口 th ...

随机推荐

  1. .NET设计篇08-线程统一取消模型和跨线程访问UI

    知识需要不断积累.总结和沉淀,思考和写作是成长的催化剂,输出倒逼输入 内容目录 一.线程统一取消模型1.取消令牌2.可以中断的线程1.设计一个中断函数2.创建CancellationTokenSour ...

  2. Pillow库来着

    第一步肯定是安装啦 pip install pillow 如果安装报错,可以升级一下pip库,因为有可能是pip版本低了......... pip show pip 升级用 python -m pip ...

  3. 异常记录——bat批处理闪退

    bat批处理闪退 bat描述 我的博客每次更新需要跑多个命令 clean(清除旧文)+g(生成新文)+d(部署到服务器),作为一个懒惰的程序员,自然要写一个bat一键完成 E: cd blog hex ...

  4. POJ1144 Network 题解 点双连通分量(求割点数量)

    题目链接:http://poj.org/problem?id=1144 题目大意:给以一个无向图,求割点数量. 这道题目的输入和我们一般见到的不太一样. 它首先输入 \(N\)(\(\lt 100\) ...

  5. selenium爬取驾考宝典题目

    要求 [x] Python3+ [x] Chrome驱动并已配置环境变量 [x] Selenium ## 研究页面 发现驾考宝典的科目四页面URL都是以 https://www.jiakaobaodi ...

  6. Jenkins2构建pipeline流水线

    流水线有两种方式: 1.脚本式流水线 2.声明式流水线 构建流水线的简单示例: 脚本式流水线 node ('master'){ stage("Source"){ //从Git仓库中 ...

  7. Kubernetes 会不会“杀死” DevOps?

    作者丨孙健波(天元)  阿里巴巴技术专家 导读:DevOps 这个概念最早是在 2007 年提出的,那时云计算基础设施的概念也才刚刚提出没多久,而随着互联网的逐渐普及,应用软件的需求爆发式增长,软件开 ...

  8. linux搭建简单的web服务器

    主要想法是:使用虚拟机的Ubuntu系统搭建http服务器,然后在window的浏览器上测试 1.先测试windows和虚拟机上的ubuntu能否相互ping通 2.下载http.tar.gz并拷贝到 ...

  9. JWT (一):认识 JSON Web Token

    JWT(一):认识 JSON WebToken JWT(二):使用 Java 实现 JWT 什么是 JWT? JSON Web Token(JWT)是一种开放标准(RFC 7519),它定义了一种紧凑 ...

  10. swiper如何禁止左右箭头切换

    swiper做项目时,需求 带着左右两边的箭头, 场景1:swiper自动切换,此时左右箭头点击时不能切换   场景2:swiper手动切换,左右箭头可以实现切换,通过翻阅api 终于找到 <s ...