docker 制作镜像产生的错误文件_docker制作精简的jdk镜像

一晃公众号都几年没更新文章了 ̄□ ̄||

最近使用docker容器部署发现生成镜像有600多M,原来是jdk镜像就有500多M,一想时间久了不都要1个G了,正常windows下的jdk也没那么大,所以简直不能忍,要精简jdk镜像,那么见证奇迹的时刻到了。

结合网上资料看下alpine是个啥?

alpine Linux简介

1.Alpine Linux是一个轻型Linux发行版,它不同于通常的Linux发行版,Alpine采用了musl libc 和 BusyBox以减少系统的体积和运行时的资源消耗。

2.Alpine Linux提供了自己的包管理工具:apk(注意:ubuntu是apt-get),我们可以通过https://pkgs.alpinelinux.org/packages 查询包信息

3.Alpine Docker镜像继承了Alpine Linux发行版的这些优势,相比于其他Linux Docker镜像,它的体积非常小 对比常用的、没有压缩过的基础镜像(查看当前的:latest标签):

  • Alpine - 4.8MB

  • centos - 124.8 MB

  • Debian - 125.1MB

  • Centos - 196MB

制作镜像

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

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

解压

tar -xf jre1.8.0_271.tar.gz

进入目录

cd jre1.8.0_271

删除无用文件

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

重新打包所有文件

tar -cf jre1.8.0_271.tar.gz  jre1.8.0_271

创建Dockerfile

#1.指定基础镜像,并且必须是第一条指令

FROM docker.io/jeanblanchard/alpine-glibc

#2.指明该镜像的作者和其电子邮件

MAINTAINER mary "mary@qq.com"

#3.在构建镜像时,指定镜像的工作目录,之后的命令都是基于此工作目录,如果不存在,则会创建目录

WORKDIR /data/opt/jdk

#ADD和copy的区别:ADD复制并解压,copy只是复制

ADD jre1.8.0_271.tar.gz  /data/opt/jdk

#4.运行指定的命令,设置东8时区

RUN apk add -U tzdata && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \

&& rm -rf /var/cache/apk/*

#5.配置环境变量

ENV JAVA_HOME  /data/opt/jdk/jre1.8.0_271

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

构建docker镜像

3a6da4d3f53ce17f69383e1f1069dad2.png

docker build -t jre1.8:v1.0 .

看看最终效果

a4fee0ad1efecb27b35f566e53a2832a.png

测试

docker run -it  --name jre8 b563da133cae

0fa2c75685e19fedba07ae0fcf8625c6.png

这样最终镜像大小才100多M左右。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值