当前位置: 首页 > article >正文

创建一个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

http://www.kler.cn/a/291659.html

相关文章:

  • 【优选算法---归并排序衍生题目】剑指offer51---数组中的逆序对、计算右侧小于当前元素的个数、翻转对
  • 基础爬虫案例实战
  • ubuntu18.04升级到ubuntu20.04
  • 3.使用SD卡挂载petalinux根文件系统
  • 笔记本电脑需要一直插着电源吗?电脑一直充电的利弊介绍
  • Java并发编程框架之综合案例——在线聊天室(二)
  • taro ui 小程序at-calendar日历组件自定义样式+选择范围日历崩溃处理
  • PyTorch常用库函数:torch.acos()的详解实战使用
  • 世界时钟怎么设置?一键设置多个世界时钟 多个地区时间
  • 向量和矩阵学习笔记
  • vue3 VueUse useElementVisibility 来监听某一个元素或者div是否在当前视口viewport中可见。
  • 坐牢第三十五天(c++)
  • 智能手机、汽车新应用,星纪魅族幸运星号”卫星即将发射
  • 如何用 Typed.js 制作炫酷的打字效果?
  • 【避坑指南】避免几个坑,OpenCV的轮廓分析速度也可以很快!
  • 【C-实践】一对一的远程通信(tcp+epoll)
  • 浅谈维度建模、数据分析模型,何为数据仓库,与数据库的区别
  • Shell脚本字符串处理(Linux篇)
  • 机器人笛卡尔空间轨迹规划原理与MATLAB实现
  • Java【操作符】
  • 如何在本地服务器部署SeaFile自托管文件共享服务结合内网穿透打造私有云盘?
  • python办公自动化:使用`Python-PPTX`创建和操作表格
  • 行测笔记_片段阅读1(中心理解)
  • Flink优化之--旁路缓存和异步IO
  • 图像数据处理23
  • git 常用命令合集