本文档介绍的 JRE Docker 镜像由 Canonical ***提供,基于 Ubuntu 系统构建。该镜像会持续接收安全更新,并支持滚动升级至更新的 JRE 版本或 Ubuntu 发行版。本仓库可免费使用,且不受用户速率限制。
该镜像内置的 Java 运行时环境(JRE)基于 OpenJDK 项目——这是 Java 平台标准版(Java SE)的免费开源实现。自 Java SE 7 起,OpenJDK 成为其***参考实现(详情可参考 OpenJDK 官网)。请注意,Java 是 Oracle 及其关联公司的注册商标。
***led Ubuntu 是一类轻量级 OCI 镜像,不含 bash、包管理器及 OpenJDK 开发工具,仅作为兼容 Java 应用的运行时终阶段基础镜像。想了解更多可参考 Ubuntu ***博客,也可根据应用需求自定义 ***led Ubuntu 基础镜像。
8 和 17 版本:基于 Dockerfile 构建,入口点为 java。直接运行即可调用 Java:
bash$ docker run --rm ubuntu/jre:17_edge Usage: java [options] <mainclass> [args...]
11 和 21 及以上版本:基于 Rockcraft 构建(即 "rocks" 格式),入口点为 pebble enter。需通过 exec 命令调用 Java:
bash$ docker run --rm ubuntu/jre:21_edge exec java Usage: java [options] <mainclass> [args...]
根据 JRE 版本选择对应命令:
bashdocker run -d --name jre-container -e TZ=UTC ubuntu/jre:17-22.04_edge
bashdocker run -d --name jre-container -e TZ=UTC ubuntu/jre:21-24.04_edge exec java
说明:直接运行镜像会输出 OpenJRE 帮助信息,因为镜像需配合已编译的 Java 应用使用。
以下通过简单的 Hello World 应用演示完整使用流程。
创建 HelloWorld.java:
java// HelloWorld.java class HelloWorld { public static void main(String args[]) { System.out.println("Hello, World"); } }
根据 JRE 版本使用不同 Dockerfile:
dockerfile# Dockerfile (8/17 版本) FROM ubuntu:22.04 AS builder RUN apt-get update && apt-get install -y openjdk-8-jdk WORKDIR /app ADD HelloWorld.java . RUN javac -source 8 -target 8 HelloWorld.java -d . # 编译 Java 文件 FROM ubuntu/jre:8-22.04_edge # 使用 ***led Ubuntu JRE 镜像 WORKDIR / COPY --from=builder /app/HelloWorld.class . # 复制编译后的类文件 CMD ["HelloWorld"] # 运行应用
dockerfile# Dockerfile (11/21 版本) FROM ubuntu:24.04 AS builder RUN apt-get update && apt-get install -y openjdk-8-jdk WORKDIR /app ADD HelloWorld.java . RUN javac -source 8 -target 8 HelloWorld.java -d . FROM ubuntu/jre:21-24.04_edge COPY --from=builder /app/HelloWorld.class . CMD ["exec", "java", "-cp", "/", "HelloWorld"] # 通过 pebble 执行 java 命令
构建并运行:
bashdocker build -t hello-jre . docker run --rm hello-jre # 输出 "Hello, World"
| 主要标签 | 其他可用标签 | 支持期限 | 当前版本 | 架构支持 |
|---|---|---|---|---|
11-24.04_stable | 11-24.04, 11-24.04_beta, 11-24.04_candidate, 11-24.04_edge | - | JRE 11 on Ubuntu 24.04 LTS | arm64, amd64 |
21-24.04_stable | 21-24.04, 21-24.04_beta, 21-24.04_candidate, 21-24.04_edge | - | JRE 21 on Ubuntu 24.04 LTS | amd64, arm64 |
17-22.04_edge | 17-22.04_93, 17-22.04_edge_93, 17_edge | - | JRE 17 on Ubuntu 22.04 LTS | amd64, arm64 |
8-22.04_edge | 8-22.04_93, 8-22.04_edge_93, 8_edge, edge | - | JRE 8 on Ubuntu 22.04 LTS | amd64, arm64 |
标签说明:渠道稳定性从高到低为
stable→candidate→beta→edge。若列出beta,则edge同样可用;若列出stable,则所有四个渠道均可用。镜像会按edge→beta→candidate→stable顺序迭代发布。
若需商业分发,或需要 ESM 支持及未列出的渠道/版本,请联系 Canonical 团队(***:[已删除],或参考联系方式)。
bashdocker logs -f jre-container # 替换为实际容器名
对于 11 和 21 版本,需通过 pebble 查看应用日志:
bashdocker exec jre-container pebble logs # 替换为实际容器名
如发现镜像漏洞或需新增功能,请在 Launchpad 提交 issue:
[***]
提交时请按格式填写标题:jre: <问题摘要>,并附上镜像完整 digest(可通过以下命令获取):
bashdocker images --no-trunc --quiet ubuntu/jre:<标签> # 替换为实际标签
以下渠道(标签)不再更新,请尽快升级至新版本;若无法升级,可联系 Canonical获取支持。
| 渠道(Track) | 版本(Version) | 停止维护(EOL) | 升级路径(Upgrade Path) |
|---|---|---|---|
track |
来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429