Docker-创建最小的jdk8镜像~

本文详细介绍了如何从官方下载JRE,通过解压、删除无用文件、重新打包,最后利用Dockerfile构建一个最小化的JDK8 Docker镜像,以减小镜像大小。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题

用centos作为基础镜像和150多M的jdk压缩来创建一个jdk镜像,发现都要500多m,这个确实有点大了。
所以下面就是如何构建最小的jdk镜像。

使用docker images 命令的时候可以看到我们的jdk真的很大
在这里插入图片描述

使用Oracle的JRE不是openjdk,并构建成Docker镜像。具体步骤如下

一:首先官网下载jre

在这里插入图片描述
大约80多M,下载结束之后上传到centos上的 /usr/local/dockerimage/smalljava8 (自定义一个目录)


二:解压jar包,并且删除不必要的文件

tar -zxvf jre-8u231-linux-x64.tar.gz​

进入目录

cd jre1.8.0_231​

删除文本文件

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 zcvf jre8.tar.gz *

打包之后把压缩包拷贝到 jre8 目录下,见下图

二:解压jar包,并且删除不必要的文件

四:创建Dockerfile
现在的目录结构如下:

在这里插入图片描述

进入jre8目录下,创建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/local/dockerimage/smalljava8/jre8/
# set env
ENV JAVA_HOME /usr/local/dockerimage/smalljava8/jre8
ENV PATH ${PATH}:${JAVA_HOME}/bin
# run container with base path:/opt
WORKDIR /opt​

加粗样式


五:构建镜像

docker build -t fds/java8:1.0 .​

六:测试运行

docker run -it fds/java8:1.0​

验证是否运行成功

 docker ps
### 使用 Docker Compose 安装 Java 8 镜像 为了通过 `docker-compose` 来安装和配置 Java 8 环境,可以按照如下方法操作。这不仅涉及创建必要的文件结构,还包括编写合适的 `docker-compose.yml` 文件。 #### 创建项目目录 首先,在本地计算机上建立一个新的工作目录用于放置所有的配置文件: ```bash mkdir java8-docker && cd java8-docker ``` #### 编写 docker-compose.yml 文件 接下来,在该目录下创建名为 `docker-compose.yml` 的文件,并编辑其内容如下所示: ```yaml version: '3' services: java-service: image: openjdk:8-jdk-alpine container_name: my-java-container ports: - "8080:8080" environment: JAVA_OPTS: "-Xms512m -Xmx1g" volumes: - ./app:/app working_dir: /app command: ["sh", "-c", "java $$JAVA_OPTS -jar app.jar"] ``` 此 YAML 文件定义了一个服务叫做 `java-service`,它基于官方提供的 OpenJDK 8 版本镜像运行容器实例[^1]。这里还设置了端口映射、环境变量以及挂载卷等参数以便更好地控制和服务于应用程序的需求。 #### 启动服务 完成上述设置之后,可以通过简单的命令启动整个应用栈: ```bash docker-compose up -d ``` 这条指令会拉取所需的镜像(如果尚未存在),构建任何指定的服务依赖关系,并以前台模式启动它们。选项 `-d` 表示后台守护进程方式启动。 #### 停止与移除资源 当不再需要这些正在运行中的容器时,可通过下面两条命令停止并清理所有关联的资源: ```bash docker-compose down ``` 以上就是利用 `docker-compose` 工具快速部署带有 Java 8 运行时环境的应用程序的基本流程[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值