您的位置:首页 > 科技 > 能源 > 创建一个Oracle版本的JDK的Docker镜像

创建一个Oracle版本的JDK的Docker镜像

2024/12/26 12:27:39 来源:https://blog.csdn.net/gzt19881123/article/details/141934200  浏览:    关键词:创建一个Oracle版本的JDK的Docker镜像

背景说明

OpenJDK 和Oracle JDK 一般情况下我们选择OpenJDK,两者针对大部分场景都可以满足,有些地方例如反射技术获得某些包路径下的类对象等,有时候选择OpenJDK会导致空指针异常。

两者在底层实现方面有部分区别。

创建镜像

这里是Linux环境,假设我们在路径 /apps/jdk 目录下:

下载 JDK17 jar jdk-17.0.11_linux-x64_bin.tar.gz 到该目录下,

  1. 创建Dockerfile
# 使用一个轻量级的 Linux 基础镜像
FROM ubuntu:24.04# 设置环境变量
ENV JAVA_HOME=/usr/local/jdk-17
ENV PATH=$JAVA_HOME/bin:$PATH# 创建目录并解压 JDK
WORKDIR /usr/local
COPY jdk-17.0.11_linux-x64_bin.tar.gz .
RUN tar -xzf jdk-17.0.11_linux-x64_bin.tar.gz && \mv jdk-17.0.11 jdk-17 && \rm jdk-17.0.11_linux-x64_bin.tar.gz# 验证 JDK 安装
RUN java -version# 设置默认工作目录
WORKDIR /
  1. 创建镜像
docker build -t oracle-jdk:17.0.11 .
  1. 测试镜像
    假设要运行一个SpringBoot的应用容器,
    当前目录下 ./target/yourSpringBoot.jar 创建容器,
    Dockerfile如下:
# 使用创建的Oracle JDK镜像  
FROM oracle-jdk:17.0.11
# 设置时区  
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \echo 'Asia/Shanghai' > /etc/timezone  
# 设置环境变量  
ENV LANG=C.UTF-8
# 将应用程序 JAR 文件复制到镜像中  
COPY target/yourSpringBoot.jar app.jar  
# 设置入口点  
ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "/app.jar"]
  1. 导出镜像
    导出镜像用于其他服务器上
docker save -o oracle-jdk.tar oracle-jdk:17.0.11

注意: 要下载 oracle-jdk.tar 可能权限不足,记得 chmod 644 oracle-jdk.tar

  1. 导入镜像
docker load -i oracle-jdk.tar

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com