Eclipse Temurin 21 (JRE) Alpine 镜像获取、离线导入与推送操作

📌 摘要 :本文介绍如何在离线(内网)环境中获取并导入 Eclipse Temurin JRE 21 的 Docker 镜像。内容涵盖两种获取方式(直接下载官方 tar 包、或先拉取再导出)、镜像导入与查看、JRE 具体版本的三种验证方法、标签重命名(规避 + 非法字符)以及推送至私有仓库的完整流程,并附有注意事项与最佳实践。


Eclipse Temurin 21 (JRE) Alpine 镜像离线导入与推送操作总结

📌 环境说明

  • 操作系统:Linux(CentOS/RHEL,root 用户)
  • 目标私有仓库 :registry.example.com/your-project/
  • 镜像基础 :eclipse-temurin:21-jre-alpine(JDK 21.0.12.1+1 的 JRE 版本,基于 Alpine Linux)

🛠️ 操作步骤

1. 获取镜像并构建 tar 包(标准离线部署流程)

⚠️ 注意 :官方没有提供 Docker 镜像的预构建 tar 包直接下载渠道。要获得可用于离线环境的 Docker 镜像 tar 包,必须先在联网环境拉取镜像,再导出。

(1)在有外网的环境拉取官方镜像

bash 复制代码
docker pull eclipse-temurin:21-jre-alpine

💡 提示 :国内环境可配置镜像加速器(如阿里云、中科大等),或修改 Docker Daemon 的 registry-mirrors 以提升拉取速度。

(2)将镜像导出为 tar 包

bash 复制代码
docker save -o eclipse-temurin-21-jre-alpine.tar eclipse-temurin:21-jre-alpine

💡 可选压缩:若需减小传输体积,可结合 gzip 压缩:

bash 复制代码
docker save eclipse-temurin:21-jre-alpine | gzip > eclipse-temurin-21-jre-alpine.tar.gz

(3)将 tar 包传输到离线服务器

通过 scp、rsync 或移动介质将文件拷贝至目标机器。

2. 导入镜像

在目标离线服务器上,执行导入:

bash 复制代码
docker load -i eclipse-temurin-21-jre-alpine.tar

(若传输的是 .tar.gz 压缩包,请先解压:gunzip eclipse-temurin-21-jre-alpine.tar.gz 再执行导入)

3. 查看镜像

bash 复制代码
docker images | grep jre

输出结果:

text 复制代码
eclipse-temurin    21-jre-alpine    d0f52469e5e2    2 weeks ago    208MB

4. 🔍 补充:查看 JRE 具体版本的方法

仅通过 docker images 无法看到具体的 Java 小版本号,可以通过以下三种方法验证:

方法一:运行临时容器查看(最推荐,最直接)

bash 复制代码
docker run --rm eclipse-temurin:21-jre-alpine java -version

输出示例:

text 复制代码
openjdk version "21.0.12.1" 2026-08-19
OpenJDK Runtime Environment Temurin-21.0.12.1+1 (build 21.0.12.1+1)
OpenJDK 64-Bit Server VM Temurin-21.0.12.1+1 (build 21.0.12.1+1, mixed mode, sharing)

方法二:查看镜像内的 release 文件

bash 复制代码
docker run --rm eclipse-temurin:21-jre-alpine cat /opt/java/openjdk/release

(Temurin 镜像默认将 Java 安装到 /opt/java/openjdk 目录下)

方法三:查看镜像历史记录(辅助参考)

bash 复制代码
docker history eclipse-temurin:21-jre-alpine

5. 重新构建标签(Tag)

⚠️ 避坑提示 :Docker 的标签名称只允许包含小写字母、数字、下划线 _、连字符 - 和点 .。由于 Java 官方版本号中的加号 +(如 21.0.12.1+1)在 Docker 标签中属于非法字符,必须将 + 替换为 - 或 _。

执行打标签操作(将 +1 替换为 -1):

bash 复制代码
docker tag eclipse-temurin:21-jre-alpine registry.example.com/your-project/eclipse-temurin:21.0.12.1-jre-alpine

6. 推送至私有仓库

bash 复制代码
docker push registry.example.com/your-project/eclipse-temurin:21.0.12.1-jre-alpine

确保已使用 docker login registry.example.com 登录,且拥有 your-project 项目的推送权限。

💡 注意事项与最佳实践

  1. 渠道说明 :官方(Adoptium / Docker Hub)仅提供系统级安装包(.tar.gz)的直接下载,不提供 Docker 镜像 tar 包 。离线 Docker 镜像 tar 包只能通过 docker pull + docker save 自行生成。
  2. 标签规范 :在任何 Docker 操作中,tag 名称禁止使用 +。建议将 Java 的 build 号(+1)转换成 _1 或 -1。
  3. 架构匹配 :本例使用的是 Alpine 版本。如果你的业务容器也是基于 Alpine 构建,可以直接使用;如果业务容器是 Ubuntu/CentOS 等常规 Linux 发行版,请勿使用此 Alpine 镜像 (musl libc 与 glibc 不兼容),需下载非 Alpine 的 eclipse-temurin:21-jre 版本。
  4. 推送后验证 :推送完成后,可以在其他机器上执行 docker pull registry.example.com/your-project/eclipse-temurin:21.0.12.1-jre-alpine 以验证仓库的可用性。

📝 说明 :文档中的 registry.example.com/your-project/ 为占位符,实际使用时请替换为你自己的私有仓库地址和项目空间名称。

相关推荐
Nuanyt12 小时前
LeetCode Hot 100 链表专题(五)· 2 题(Java)
java·算法·leetcode·链表
黑马程序员毕设13 小时前
基于 Java 的餐饮点餐系统设计与应用报告
java·开发语言
SL_staff13 小时前
从文档工具到知识中枢:基于JVS数字底座构建企业级统一内容管理平台的技术实践
java·开源·全栈
SL_staff13 小时前
从‘连得上’到‘管得好’:JVS-IOT双引擎驱动设备运维闭环
java·物联网·产品
w_zero_one16 小时前
递归算法(一)
java·开发语言·算法
IT利刃出鞘16 小时前
Docker Compose--解决修改配置后不生效的问题
运维·docker·容器
java_logo16 小时前
Docker 部署 CloudBeaver:轻松搭建网页数据库管理平台
数据库·docker·容器·数据库管理·dbeaver·轩辕镜像·cloudbeaver
Lsetea16 小时前
Docker更新SSL证书后容器仍读旧文件:单文件挂载与目录挂载排查
运维·nginx·docker·https·ssl证书
SL_staff16 小时前
私有化低代码不是减配版开发:JVS双模式建模如何重建IT交付信任
java·低代码·spring cloud
墨着染霜华16 小时前
Redocly 生成 OpenAPI 接口文档踩坑实录|Node 版本兼容 + 接口地址错误问题解决
java