Linux之Docker使用JDK21安装包制作JDK21镜像包

1. 能联网的机器拉取基础镜像

bash 复制代码
docker pull debian:bookworm-slim 

2. 将 jdk-21_linux-x64_bin.tar.gz 放入相应目录下。如: /root/jdk21/

jdk-21_linux-x64_bin.tar.gz

3. 编写DokerFile :

bash 复制代码
# 基于 Debian slim 镜像(内置 glibc,兼容 JDK 21)
FROM debian:bookworm-slim

# 维护者信息(可选)
LABEL maintainer="admin"

# 安装基础依赖(Debian 用 apt,仅需证书保证基础功能)
RUN apt update && \
    apt install -y --no-install-recommends ca-certificates && \
    rm -rf /var/lib/apt/lists/*

# 创建 JDK 安装目录
RUN mkdir -p /usr/local/jdk21

# 复制本地 JDK tar 包到镜像(确保文件名和你服务器上的一致)
COPY jdk-21_linux-x64_bin.tar.gz /usr/local/jdk21/

# 解压 JDK 并删除压缩包(减小镜像体积)
RUN cd /usr/local/jdk21 && \
    tar -zxf jdk-21_linux-x64_bin.tar.gz --strip-components=1 && \
    rm -f jdk-21_linux-x64_bin.tar.gz

# 配置 JDK 环境变量
ENV JAVA_HOME=/usr/local/jdk21
ENV PATH=$PATH:$JAVA_HOME/bin

# 验证 JDK 安装
RUN java -version

# 默认启动命令
CMD ["java", "-version"]

4. # 构建镜像(覆盖之前的错误镜像)

bash 复制代码
docker build -t openjdk:21 .

5. 将镜像保存为 tar 包

bash 复制代码
docker save -o openjdk21.tar openjdk:21

已做好的镜像包:openjdk21.tar

6. 导入

bash 复制代码
docker load -i openjdk21.tar

7. 启动: -d 表示后台运行,--restart=always 表示容器异常退出时自动重启

bash 复制代码
docker run -d -it --name jdk21 --restart=always openjdk:21 /bin/bash

8. 进入容器:

bash 复制代码
docker exec -it 容器id或者容器名 /bin/bash
相关推荐
Initialize-le3 小时前
Nginx 504 超时、499 一堆?网关排查法
运维·nginx
哦虎!5 小时前
【JavaEE】网络初识
java
Android系统攻城狮6 小时前
Linux Gstreamer深度解析之gst_audio_ring_buffer_delay调用流程与实战(七十二)
linux·运维·服务器·gstreamer音视频·音视频进阶
for_ever_love__6 小时前
MySQL ORDER BY 排序优化:从 Using filesort 到索引有序扫描(含双路 / 单路排序原理)
java·mysql·优化·存储·by·order·filesort
快乐的韭菜根根6 小时前
ubuntu 安装slurm并配置
linux·运维·ubuntu
我是人✓6 小时前
Java文件上传三方式对比:从传统到SpringBoot
java·开发语言
欣栀♡7 小时前
JVM 频繁 Full GC 先看日志括号里的 cause,jstat 的 FGC 在 JDK 8 上会骗人
java·jvm
IT研究室7 小时前
最新计算机毕业设计选题推荐-基于spring boot的葡萄酒文化宣传网站-网站-文档指导-Java-springboot
java·spring boot·课程设计
U-Mail邮件系统7 小时前
自建邮箱服务器有哪些软件?三款主流邮件服务器软件推荐
运维·服务器
慧都小项7 小时前
MyEclipse 中创建和测试 JAX-RS REST 接口:从项目配置到 REST Explorer
java·restful·myeclipse·jax-rs