
本镜像基于Azul Zulu OpenJDK构建,提供稳定可靠的Java运行环境,支持多种标签、操作系统和配置选项,适用于Java应用的开发、测试和生产部署。
注意:时间戳标签(Timestamped tags)不维护。
jdk-11, jdk-11-debian, jdk-11-debian-10, jdk-11-busterjdk-11-ubuntu, jdk-11-ubuntu-20.04, jdk-11-focaljdk-11u10, jdk-11u10-debian, jdk-11u10-debian-10, jdk-11u10-busterjdk-11u10-ubuntu, jdk-11u10-ubuntu-20.04, jdk-11u10-focaljdk-11-yyyymmdd, jdk-11-debian-yyyymmdd, jdk-11-debian-10-yyyymmdd, jdk-11-buster-yyyymmddjdk-11-ubuntu-yyyymmdd, jdk-11-ubuntu-20.04-yyyymmdd, jdk-11-focal-yyyymmddjdk-11u10-yyyymmdd, jdk-11u10-debian-yyyymmdd, jdk-11u10-debian-10-yyyymmdd, jdk-11u10-buster-yyyymmddjdk-11u10-ubuntu-yyyymmdd, jdk-11u10-ubuntu-20.04-yyyymmdd, jdk-11u10-focal-yyyymmddjdk-11-yyyymmdd.buildNumber, jdk-11-debian-yyyymmdd.buildNumber, jdk-11-debian-10-yyyymmdd.buildNumber, jdk-11-buster-yyyymmdd.buildNumberjdk-11-ubuntu-yyyymmdd.buildNumber, jdk-11-ubuntu-20.04-yyyymmdd.buildNumber, jdk-11-focal-yyyymmdd.buildNumberjdk-11u10-yyyymmdd.buildNumber, jdk-11u10-debian-yyyymmdd.buildNumber, jdk-11u10-debian-10-yyyymmdd.buildNumber, jdk-11u10-buster-yyyymmdd.buildNumberjdk-11u10-ubuntu-yyyymmdd.buildNumber, jdk-11u10-ubuntu-20.04-yyyymmdd.buildNumber, jdk-11u10-focal-yyyymmdd.buildNumber注意:不要在生产环境中使用。-SNAPSHOT标签表示来自主分支构建的开发工件。
jdk-11-SNAPSHOT, jdk-11-debian-SNAPSHOT, jdk-11-debian-10-SNAPSHOT, jdk-11-buster-SNAPSHOTjdk-11-ubuntu-SNAPSHOT, jdk-11-ubuntu-20.04-SNAPSHOT, jdk-11-focal-SNAPSHOTjdk-11u10-SNAPSHOT, jdk-11u10-debian-SNAPSHOT, jdk-11u10-debian-10-SNAPSHOT, jdk-11u10-buster-SNAPSHOTjdk-11u10-ubuntu-SNAPSHOT, jdk-11u10-ubuntu-20.04-SNAPSHOT, jdk-11u10-focal-SNAPSHOTjdk-11-SNAPSHOT-yyyymmdd, jdk-11-debian-SNAPSHOT-yyyymmdd, jdk-11-debian-10-SNAPSHOT-yyyymmdd, jdk-11-buster-SNAPSHOT-yyyymmddjdk-11-ubuntu-SNAPSHOT-yyyymmdd, jdk-11-ubuntu-20.04-SNAPSHOT-yyyymmdd, jdk-11-focal-SNAPSHOT-yyyymmddjdk-11u10-SNAPSHOT-yyyymmdd, jdk-11u10-debian-SNAPSHOT-yyyymmdd, jdk-11u10-debian-10-SNAPSHOT-yyyymmdd, jdk-11u10-buster-SNAPSHOT-yyyymmddjdk-11u10-ubuntu-SNAPSHOT-yyyymmdd, jdk-11u10-ubuntu-20.04-SNAPSHOT-yyyymmdd, jdk-11u10-focal-SNAPSHOT-yyyymmddjdk-11-SNAPSHOT-yyyymmdd.buildNumber, jdk-11-debian-SNAPSHOT-yyyymmdd.buildNumber, jdk-11-debian-10-SNAPSHOT-yyyymmdd.buildNumber, jdk-11-buster-SNAPSHOT-yyyymmdd.buildNumberjdk-11-ubuntu-SNAPSHOT-yyyymmdd.buildNumber, jdk-11-ubuntu-20.04-SNAPSHOT-yyyymmdd.buildNumber, jdk-11-focal-SNAPSHOT-yyyymmdd.buildNumberjdk-11u10-SNAPSHOT-yyyymmdd.buildNumber, jdk-11u10-debian-SNAPSHOT-yyyymmdd.buildNumber, jdk-11u10-debian-10-SNAPSHOT-yyyymmdd.buildNumber, jdk-11u10-buster-SNAPSHOT-yyyymmdd.buildNumberjdk-11u10-ubuntu-SNAPSHOT-yyyymmdd.buildNumber, jdk-11u10-ubuntu-20.04-SNAPSHOT-yyyymmdd.buildNumber, jdk-11u10-focal-SNAPSHOT-yyyymmdd.buildNumber提供多个环境变量用于调整镜像行为。虽非必需,但可显著提升使用体验。这些变量由初始化脚本读取并追加到JAVA_OPTS。
| 变量名 | 默认值 | 对应的Java参数 |
|---|---|---|
| JAVA_XMS | 无 | -Xmx |
| JAVA_XMX | 无 | -Xms |
| DEBUG | false | -Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n |
| JMX_ENABLED | false | -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.local.only=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.rmi.port=5000 -Dcom.sun.management.jmxremote.port=5000 -Djava.rmi.server.hostname=$JMX_RMI_HOST |
| JMX_RMI_HOST | 0.0.0.0 | |
| JAVA_OPTS_<variable>=<value> | <value> | <variable> |
镜像会遍历所有以JAVA_OPTS_开头的环境变量,并在容器启动时将其收集到JAVA_OPTS变量中,用于向Java进程传递JVM参数。
环境变量格式应为JAVA_OPTS_xxx="-Dkey=value",其中xxx为忽略的键名。
注意:忽略的键名在使用多个docker-compose.yml文件或docker-compose.override.yml覆盖特定JVM参数时有用,详情参见Docker Compose文档。
openjdk镜像有多种变体,标签结构如下:
openjdk:<type>-<version>-<os>
变体由三个参数组合而成:
jdk或jre11或11u10debian、debian-10或buster如需其他参数组合,请提交issue。
通常维护不同Java主版本的LTS版本最新更新:
jdk-11-debianjdk-11-ubuntu注意:Java更新版本(次要版本)不维护。例如:当前Debian JDK 11镜像标记为jdk-11-debian-10,并附加jdk-11u10-debian-10标签表示Java 11更新版本。发布下一个更新后,jdk-11-debian-10标签会更新,但jdk-11u10-debian-10将不再支持,也不会接收操作系统或Java安全补丁。
debian:busterubuntu:focal本镜像使用Docker ENTRYPOINT提供初始化钩子。
如需在基于此镜像的派生镜像中执行额外初始化,可在/docker-entrypoint.d/目录下添加一个或多个*.sh脚本。脚本会被source执行,无需可执行权限(在现有shell中运行,脚本创建或修改的变量在执行后仍可用)。初始化脚本按当前区域设置的名称排序执行。
初始化完成后,主CMD会被exec执行,避免在子shell中启动主进程。
可通过docker run --entrypoint标志覆盖或禁用初始化脚本。
要构建本地版本的Java镜像:
bash./gradlew buildDockerImage
设置环境变量DEBUG=true,调试端口为8000。
设置环境变量JMX_ENABLED=true,JMX端口为5000。

探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务