wordpress分享js代碼無錫網(wǎng)站seo顧問
背景說明
OpenJDK 和Oracle JDK 一般情況下我們選擇OpenJDK,兩者針對(duì)大部分場(chǎng)景都可以滿足,有些地方例如反射技術(shù)獲得某些包路徑下的類對(duì)象等,有時(shí)候選擇OpenJDK會(huì)導(dǎo)致空指針異常。
兩者在底層實(shí)現(xiàn)方面有部分區(qū)別。
創(chuàng)建鏡像
這里是Linux環(huán)境,假設(shè)我們?cè)诼窂?/apps/jdk
目錄下:
下載 JDK17 jar jdk-17.0.11_linux-x64_bin.tar.gz
到該目錄下,
- 創(chuàng)建Dockerfile
# 使用一個(gè)輕量級(jí)的 Linux 基礎(chǔ)鏡像
FROM ubuntu:24.04# 設(shè)置環(huán)境變量
ENV JAVA_HOME=/usr/local/jdk-17
ENV PATH=$JAVA_HOME/bin:$PATH# 創(chuàng)建目錄并解壓 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# 驗(yàn)證 JDK 安裝
RUN java -version# 設(shè)置默認(rèn)工作目錄
WORKDIR /
- 創(chuàng)建鏡像
docker build -t oracle-jdk:17.0.11 .
- 測(cè)試鏡像
假設(shè)要運(yùn)行一個(gè)SpringBoot的應(yīng)用容器,
當(dāng)前目錄下./target/yourSpringBoot.jar
創(chuàng)建容器,
Dockerfile如下:
# 使用創(chuàng)建的Oracle JDK鏡像
FROM oracle-jdk:17.0.11
# 設(shè)置時(shí)區(qū)
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \echo 'Asia/Shanghai' > /etc/timezone
# 設(shè)置環(huán)境變量
ENV LANG=C.UTF-8
# 將應(yīng)用程序 JAR 文件復(fù)制到鏡像中
COPY target/yourSpringBoot.jar app.jar
# 設(shè)置入口點(diǎn)
ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "/app.jar"]
- 導(dǎo)出鏡像
導(dǎo)出鏡像用于其他服務(wù)器上
docker save -o oracle-jdk.tar oracle-jdk:17.0.11
注意:
要下載 oracle-jdk.tar 可能權(quán)限不足,記得 chmod 644 oracle-jdk.tar
- 導(dǎo)入鏡像
docker load -i oracle-jdk.tar