网站建设 的公司哪家好,小程序制作开发,自媒体软文发布平台,如何做网站吸引广告商背景说明
OpenJDK 和Oracle JDK 一般情况下我们选择OpenJDK#xff0c;两者针对大部分场景都可以满足#xff0c;有些地方例如反射技术获得某些包路径下的类对象等#xff0c;有时候选择OpenJDK会导致空指针异常。
两者在底层实现方面有部分区别。
创建镜像
这里是Linux…背景说明
OpenJDK 和Oracle JDK 一般情况下我们选择OpenJDK两者针对大部分场景都可以满足有些地方例如反射技术获得某些包路径下的类对象等有时候选择OpenJDK会导致空指针异常。
两者在底层实现方面有部分区别。
创建镜像
这里是Linux环境假设我们在路径 /apps/jdk 目录下
下载 JDK17 jar jdk-17.0.11_linux-x64_bin.tar.gz 到该目录下
创建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 /创建镜像
docker build -t oracle-jdk:17.0.11 .测试镜像 假设要运行一个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 LANGC.UTF-8
# 将应用程序 JAR 文件复制到镜像中
COPY target/yourSpringBoot.jar app.jar
# 设置入口点
ENTRYPOINT [java, -Djava.security.egdfile:/dev/./urandom, -jar, /app.jar]导出镜像 导出镜像用于其他服务器上
docker save -o oracle-jdk.tar oracle-jdk:17.0.11注意 要下载 oracle-jdk.tar 可能权限不足记得 chmod 644 oracle-jdk.tar
导入镜像
docker load -i oracle-jdk.tar