栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

docker jdk基础镜像精简(带jps功能)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

docker jdk基础镜像精简(带jps功能)

打包docker jdk最小镜像步骤(考虑到小体积,使用jre包,但需要带jps功能)


1、到官网找jre对应的下载地址
注意官网找的url中otn需要加-pub
wget --no-cookies --no-check-certificate --header "cookie:oraclelicense=accept-securebackup-cookie" https://download.oracle.com/otn-pub/java/jdk/8u311-b11/4d5417147a92418ea8b615e228bb6935/jre-8u311-linux-x64.tar.gz
因为需要jps功能因此下载对应的jdk包
wget --no-cookies --no-check-certificate --header "cookie:oraclelicense=accept-securebackup-cookie" https://download.oracle.com/otn-pub/java/jdk/8u311-b11/4d5417147a92418ea8b615e228bb6935/jdk-8u311-linux-x64.tar.gz
2、解压jre-8u311-linux-x64.tar.gz,删除一些无用文件
#解压
tar -zxvf jre-8u311-linux-x64.tar.gz

#进入目录
cd jre1.8.0_311/

#删除文本文件
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、解压jdk-8u311-linux-x64.tar.gz将jps(/bin)和tools.jar(/lib)文件拷贝到对应目录
#解压
tar -zxvf jdk-8u311-linux-x64.tar.gz

#进入目录
cd jdk1.8.0_311/

#拷贝jps文件
cp bin/jps ../jre1.8.0_311/bin/

#拷贝tools.jar文件
cp lib/tools.jar ../jre1.8.0_311/lib/

4、重新打tar.gz包
cd jre1.8.0_311/
tar zcvf jre8.tar.gz *
5、创建Dockerfile(记得安装glib三个依赖包,否则会有问题)
# using alpine-glibc instead of alpine  is mainly because JDK relies on glibc
FROM alpine:3.8
LABEL maintainer="modaozushiyo"
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/${TZ} /etc/localtime && 
    echo ${TZ} > /etc/timezone

#******************更换Alpine源为mirrors.ustc.edu.cn******************
RUN echo http://mirrors.aliyun.com/alpine/v3.10/main/ > /etc/apk/repositories && 
    echo http://mirrors.aliyun.com/alpine/v3.10/community/ >> /etc/apk/repositories
RUN apk update && apk upgrade

# Alpine linux为了精简本身并没有安装太多的常用软件,apk类似于ubuntu的apt-get,
# 用来安装一些常用软V件,其语法如下:apk add bash wget curl git make vim docker
# wget是linux下的ftp/http传输工具,没安装会报错“/bin/sh:   wget: not found”,网上例子少安装wget
# ca-certificates证书服务,是安装glibc前置依赖
RUN apk --no-cache add libstdc++ ca-certificates bash wget 
    && 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.30-r0/glibc-2.30-r0.apk 
    && wget https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.30-r0/glibc-bin-2.30-r0.apk 
    && wget https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.30-r0/glibc-i18n-2.30-r0.apk 
    && apk add glibc-2.30-r0.apk && apk add glibc-bin-2.30-r0.apk && apk add glibc-i18n-2.30-r0.apk 
    && rm -rf /var/cache/apk/* glibc-2.30-r0.apk glibc-bin-2.30-r0.apk glibc-i18n-2.30-r0.apk

RUN apk add --update font-adobe-100dpi ttf-dejavu fontconfig

# A streamlined jre
ADD jre8.tar.gz /usr/java/jdk/
# set env
ENV JAVA_HOME /usr/java/jdk
ENV PATH ${PATH}:${JAVA_HOME}/bin
6、构建镜像
docker build -t docker-registry:5000/jdk:8-jre-modaozushiyo .
7、测试镜像的java环境及jps是否可用
docker run -it docker-registry:5000/jdk:8-jre-modaozushiyo java -version
docker run -it docker-registry:5000/jdk:8-jre-modaozushiyo jps
 8、下载镜像,大小约212M
docker save -o docker-registry-5000-jdk-8-jre-modaozushiyo.tar docker-registry:5000/jdk:8-jre-modaozushiyo

以上为教程可手动学习,如果有哪些小伙伴不想动手只需要镜像,请到以下地址下载镜像

百度网盘 请输入提取码 :gu9a

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/666312.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号