📌 摘要 :本文介绍如何在离线(内网)环境中获取并导入 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 压缩:
bashdocker 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 项目的推送权限。
💡 注意事项与最佳实践
- 渠道说明 :官方(Adoptium / Docker Hub)仅提供系统级安装包(
.tar.gz)的直接下载,不提供 Docker 镜像 tar 包 。离线 Docker 镜像 tar 包只能通过docker pull+docker save自行生成。 - 标签规范 :在任何 Docker 操作中,tag 名称禁止使用
+。建议将 Java 的 build 号(+1)转换成_1或-1。 - 架构匹配 :本例使用的是 Alpine 版本。如果你的业务容器也是基于 Alpine 构建,可以直接使用;如果业务容器是 Ubuntu/CentOS 等常规 Linux 发行版,请勿使用此 Alpine 镜像 (musl libc 与 glibc 不兼容),需下载非 Alpine 的
eclipse-temurin:21-jre版本。 - 推送后验证 :推送完成后,可以在其他机器上执行
docker pull registry.example.com/your-project/eclipse-temurin:21.0.12.1-jre-alpine以验证仓库的可用性。
📝 说明 :文档中的
registry.example.com/your-project/为占位符,实际使用时请替换为你自己的私有仓库地址和项目空间名称。