首页 / 资讯中心 / 文章详情

Azul Zulu OpenJDK Docker 官方镜像完全指南:标签体系、运行方式与镜像变体解析

Azul Zulu OpenJDK Docker 官方镜像完全指南:标签体系、运行方式与镜像变体解析 ★ FEATURED ARTICLE
文档【免费下载链接】docsDocumentation for Docker Official Images in docker-library项目地址https://gitcode.com/gh_mirrors/docs/docs点击查看免费下载本文围绕 Docker 官方镜像仓库中的azul-zulu镜像展开系统讲解 Azul Zulu Builds of OpenJDK 的镜像发布矩阵版本 × 包类型 × 基础系统、标签命名与别名规则、容器运行与镜像构建的实战命令以及默认 Debian 与 Alpine 两种镜像变体的取舍依据。读完本文你将能够从azul-zulu/README.md的标签列表中快速定位所需镜像正确拼写docker run与Dockerfile并理解这些 README 在 docker-library 文档仓库中是如何自动生成的。Azul Zulu Builds of OpenJDK 是什么Azul Zulu Builds of OpenJDK 是 OpenJDK 的官方发行版之一其核心定位是经过完整测试fully tested且通过 Java SE TCK 兼容性认证TCK compliant的 OpenJDK 构建覆盖 Linux、Windows 与 macOS 三大操作系统。仓库内的简短描述文件 azul-zulu/README-short.txt 将其概括为Azul Zulu is a fully tested, compatibility verified, and trusted binary distribution of OpenJDK.在商业层面Azul Zulu 构建可免费无限使用free unlimited use并由 Azul 公司作为 Azul Platform Core 产品线的一部分提供商业支持技术文档可在 docs.azul.com/core 查阅。这意味着它既可以作为个人开发环境也可以在企业生产环境中获得官方商业保障。从 Docker Hub 的归类看azul-zulu/metadata.json 将本镜像划分为languages-and-frameworks语言与框架类别镜像本身的维护方是 Azul见 azul-zulu/maintainer.md其 Dockerfile 的上游源码仓库地址记录在 azul-zulu/github-repo 中。官方 README 的快速参考信息Quick Referenceazul-zulu/README.md开头的 Quick Reference 部分是镜像的身份信息速查区主要包括维护方Maintained byAzul求助渠道Where to get helpDocker Community Slack、Server Fault、Unix Linux 与 Stack Overflow 等社区平台Issue 提交入口Where to file issues对应 AzulSystems 的azul-zulu-images仓库 issues 区即 azul-zulu/github-repo 所指向的上游仓库支持的架构Supported architecturesamd64与arm64v8发布的镜像工件详情Published image artifact details镜像元数据、传输大小等信息记录在 repo-info 仓库的repos/azul-zulu/目录镜像更新跟踪Image updates通过 official-images 仓库中library/azul-zulu的 label 与 manifest 文件跟踪镜像发布动态本文档来源Source of this description即本仓库docs的azul-zulu/目录——README.md是由该目录下的若干源文件与模板自动生成的生成机制详见后文。标签体系详解版本 × 包类型 × 基础系统Azul Zulu 镜像在 Docker Hub 上并非单一镜像而是不同版本、不同包类型、不同基础系统组合成的镜像矩阵。理解标签命名规则是正确使用的前提。完整标签命名规范完整标签遵循如下结构ZULU_BUILD-OPENJDK_VERSION-PACKAGE-BASE_SYSTEMDISTRO_VERSION以8.96-8.0.504-jdk-debian13为例片段含义本例取值ZULU_BUILDAzul Zulu 构建版本号8.96OPENJDK_VERSION对应的 OpenJDK 上游版本8.0.504PACKAGE包类型jdk/jdk-headless/jre/jre-headlessjdkBASE_SYSTEM基础系统debian/almalinux/alpinedebianDISTRO_VERSION基础系统发行版本号13支持的版本家族镜像覆盖多个 Long Term SupportLTS长期支持版本支持时长与可用版本以 Azul Support Roadmap 为准。当前标签列表以 azul-zulu/README.md 为准包含以下 7 个 OpenJDK 版本家族OpenJDK 版本Zulu 构建号对应的 OpenJDK 上游版本88.968.0.5041111.9011.0.32.11717.6817.0.20.12121.5221.0.12.12525.3625.0.4.12626.3226.0.2.12727.2827.0.0支持的包类型每个版本家族均提供 4 种包类型覆盖从完整开发环境到精简运行时的全部需求jdk完整 Java Development Kit包含编译器javac等开发工具jdk-headless无图形界面依赖的 JDK适合服务器端开发镜像jreJava Runtime Environment仅运行环境体积更小jre-headless无图形界面依赖的 JRE是最精简的可运行 Java 应用的方案之一。支持的基础系统每个版本家族的每种包类型均构建于以下 3 种基础系统之上对应 3 张完整标签表。Debian 13trixie基础镜像OpenJDK 版本jdkjdk-headlessjrejre-headless88.96-8.0.504-jdk-debian138.96-8.0.504-jdk-headless-debian138.96-8.0.504-jre-debian138.96-8.0.504-jre-headless-debian131111.90-11.0.32.1-jdk-debian1311.90-11.0.32.1-jdk-headless-debian1311.90-11.0.32.1-jre-debian1311.90-11.0.32.1-jre-headless-debian131717.68-17.0.20.1-jdk-debian1317.68-17.0.20.1-jdk-headless-debian1317.68-17.0.20.1-jre-debian1317.68-17.0.20.1-jre-headless-debian132121.52-21.0.12.1-jdk-debian1321.52-21.0.12.1-jdk-headless-debian1321.52-21.0.12.1-jre-debian1321.52-21.0.12.1-jre-headless-debian132525.36-25.0.4.1-jdk-debian1325.36-25.0.4.1-jdk-headless-debian1325.36-25.0.4.1-jre-debian1325.36-25.0.4.1-jre-headless-debian132626.32-26.0.2.1-jdk-debian1326.32-26.0.2.1-jdk-headless-debian1326.32-26.0.2.1-jre-debian1326.32-26.0.2.1-jre-headless-debian132727.28-27.0.0-jdk-debian1327.28-27.0.0-jdk-headless-debian1327.28-27.0.0-jre-debian1327.28-27.0.0-jre-headless-debian13AlmaLinux 10 基础镜像OpenJDK 版本jdkjdk-headlessjrejre-headless88.96-8.0.504-jdk-almalinux108.96-8.0.504-jdk-headless-almalinux108.96-8.0.504-jre-almalinux108.96-8.0.504-jre-headless-almalinux101111.90-11.0.32.1-jdk-almalinux1011.90-11.0.32.1-jdk-headless-almalinux1011.90-11.0.32.1-jre-almalinux1011.90-11.0.32.1-jre-headless-almalinux101717.68-17.0.20.1-jdk-almalinux1017.68-17.0.20.1-jdk-headless-almalinux1017.68-17.0.20.1-jre-almalinux1017.68-17.0.20.1-jre-headless-almalinux102121.52-21.0.12.1-jdk-almalinux1021.52-21.0.12.1-jdk-headless-almalinux1021.52-21.0.12.1-jre-almalinux1021.52-21.0.12.1-jre-headless-almalinux102525.36-25.0.4.1-jdk-almalinux1025.36-25.0.4.1-jdk-headless-almalinux1025.36-25.0.4.1-jre-almalinux1025.36-25.0.4.1-jre-headless-almalinux102626.32-26.0.2.1-jdk-almalinux1026.32-26.0.2.1-jdk-headless-almalinux1026.32-26.0.2.1-jre-almalinux1026.32-26.0.2.1-jre-headless-almalinux102727.28-27.0.0-jdk-almalinux1027.28-27.0.0-jdk-headless-almalinux1027.28-27.0.0-jre-almalinux1027.28-27.0.0-jre-headless-almalinux10Alpine 3.23 基础镜像OpenJDK 版本jdkjdk-headlessjrejre-headless88.96-8.0.504-jdk-alpine3.238.96-8.0.504-jdk-headless-alpine3.238.96-8.0.504-jre-alpine3.238.96-8.0.504-jre-headless-alpine3.231111.90-11.0.32.1-jdk-alpine3.2311.90-11.0.32.1-jdk-headless-alpine3.2311.90-11.0.32.1-jre-alpine3.2311.90-11.0.32.1-jre-headless-alpine3.231717.68-17.0.20.1-jdk-alpine3.2317.68-17.0.20.1-jdk-headless-alpine3.2317.68-17.0.20.1-jre-alpine3.2317.68-17.0.20.1-jre-headless-alpine3.232121.52-21.0.12.1-jdk-alpine3.2321.52-21.0.12.1-jdk-headless-alpine3.2321.52-21.0.12.1-jre-alpine3.2321.52-21.0.12.1-jre-headless-alpine3.232525.36-25.0.4.1-jdk-alpine3.2325.36-25.0.4.1-jdk-headless-alpine3.2325.36-25.0.4.1-jre-alpine3.2325.36-25.0.4.1-jre-headless-alpine3.232626.32-26.0.2.1-jdk-alpine3.2326.32-26.0.2.1-jdk-headless-alpine3.2326.32-26.0.2.1-jre-alpine3.2326.32-26.0.2.1-jre-headless-alpine3.232727.28-27.0.0-jdk-alpine3.2327.28-27.0.0-jdk-headless-alpine3.2327.28-27.0.0-jre-alpine3.2327.28-27.0.0-jre-headless-alpine3.23别名标签Debian 是默认基础系统除完整标签外每个版本家族还提供一组别名标签便于日常快速引用。以 OpenJDK 8 为例其余版本模式完全一致仅替换版本号前缀Debian 系8、8-jdk、8-jdk-debian、8-jdk-debian13、8-headless、8-headless-debian、8-headless-debian13、8-jre、8-jre-debian、8-jre-debian13、8-jre-headless、8-jre-headless-debian、8-jre-headless-debian13AlmaLinux 系8-almalinux10、8-jdk-almalinux、8-jdk-almalinux10、8-headless-almalinux、8-headless-almalinux10、8-jre-almalinux、8-jre-almalinux10、8-jre-headless-almalinux、8-jre-headless-almalinux10Alpine 系8-alpine3.23、8-jdk-alpine、8-jdk-alpine3.23、8-headless-alpine、8-headless-alpine3.23、8-jre-alpine、8-jre-alpine3.23、8-jre-headless-alpine、8-jre-headless-alpine3.23。从标签列表可以推断出一个关键事实只有 Debian 系的标签拥有不带基础系统后缀的别名如8、8-jdk、8-jre说明 Debian 是azul-zulu镜像的默认基础系统。因此docker pull azul-zulu:17实际拉取的是azul-zulu:17-jdk-debian13即 Debian 13 上的 OpenJDK 17 JDK。支持架构镜像官方支持amd64与arm64v8两种架构分别对应 x86_64 与 ARM 64 位AArch64平台可覆盖绝大多数服务器与开发机场景。快速上手运行容器并验证版本运行一个 Azul Zulu 容器并验证其 Java 版本只需一条命令。以 Debian 基础镜像为例官方给出如下命令模板docker run -it --rm azul-zulu:ZULU_VERSION-debianDISTRO_VERSION java -version其中ZULU_VERSION为版本别名如8、17、21DISTRO_VERSION为基础系统发行版本号如13。结合上文标签表实际执行时可替换为具体标签例如# 使用 OpenJDK 17 JDKDebian 13 基础镜像 docker run -it --rm azul-zulu:17-jdk-debian13 java -version # 使用更简洁的别名标签等价于 azul-zulu:8-jdk-debian13 docker run -it --rm azul-zulu:8-jdk java -version # 使用 Alpine 基础镜像上的 OpenJDK 21 JRE 验证运行环境 docker run -it --rm azul-zulu:21-jre-alpine3.23 java -version-it --rm表示以交互模式启动、退出后自动删除容器适合一次性验证java -version会输出 JVM 与 OpenJDK 版本信息可据此确认拉取的镜像与预期标签一致。构建包含自有应用的服务镜像将预编译的 jar 包打制成 Docker 镜像是 Azul Zulu 最常见的生产用法。官方提供的示例 Dockerfile 如下FROM azul-zulu:VERSION COPY my-app.jar /opt/my-app/ CMD [java, -jar, /opt/my-app/my-app.jar]三个指令各司其职FROM指定基础镜像VERSION可替换为上文的任何标签如azul-zulu:17-jdk或azul-zulu:21-jre-headless-debian13选择jre系列可显著减小最终镜像体积COPY将宿主机上的my-app.jar复制进容器内的/opt/my-app/目录CMD定义容器启动时的默认进程以java -jar运行应用 jar 包。随后按常规流程构建并运行docker build -t my-app-container . docker run -it --rm my-app-container构建时将当前目录作为构建上下文Dockerfile 与my-app.jar需位于其中docker build -t指定镜像名运行时不需再传入命令CMD中的java -jar会自动启动应用。镜像变体选择指南azul-zulu镜像按基础系统分为若干变体variant每种面向特定使用场景。README 的 Image Variants 一节对此有明确说明该模板文本位于 .template-helpers/variant.md 与 .template-helpers/variant-alpine.md。azul-zulu:version默认变体Debian这是事实标准de facto镜像。如果你不确定该选哪种直接使用它即可。它既适合作为一次性容器使用挂载源码后启动容器跑应用也适合作为构建其他镜像的基础镜像。默认变体基于 Debianglibc 生态兼容性最好本仓库中所有不带基础系统后缀的别名标签都指向这一变体。azul-zulu:version-alpineAlpine 变体该变体基于 Alpine Linux基础镜像本身约 5MB整体镜像远小于大多数发行版基础镜像当最终镜像体积是首要考量时非常有用。但需要注意两个关键限制musl libc 替代 glibcAlpine 使用 musl libc 而非 glibc依赖 libc 深度较深的软件可能因此出现运行问题选用前需评估应用的 libc 兼容性预装工具精简为最小化体积Alpine 变体通常不附带git、bash等额外工具。若以它为基座构建镜像需要在自有 Dockerfile 中按需补充所需软件包。README 的自动生成机制从 content.md 到发布页azul-zulu/README.md并非手写文档而是由本仓库docker-library/docs的生成管线自动产出的。理解这一机制有助于正确解读文档中的占位信息其关键环节如下。源文件与模板镜像目录 azul-zulu/ 下的核心源文件是 azul-zulu/content.md它保存了 README 的正文主体并包含若干占位符%%LOGO%%渲染为镜像 Logo对应 azul-zulu/logo.png%%IMAGE%%渲染为镜像名azul-zulu。README 的整体骨架由 .template-helpers/template.md 提供其中定义了%%MAINTAINER%%、%%GET-HELP%%、%%TAGS%%、%%ARCHES%%、%%CONTENT%%、%%VARIANT%%、%%LICENSE%%等占位符依次对应 README 中的 Quick Reference、标签列表、架构列表、正文、变体说明与许可证章节。生成脚本 update.sh根目录的 update.sh 负责把上述源文件与占位符组装成最终 README其核心是replace_field函数update.sh它用 sed 将目标文件中的%%字段%%替换为实际内容。替换流程的关键步骤包括通过 .template-helpers/generate-dockerfile-links-partial.sh 调用bashbrew cat抓取 official-images 仓库的 manifest生成Supported tags and respectiveDockerfilelinks标签列表update.sh通过 .template-helpers/arches.sh 生成支持架构列表update.sh将 azul-zulu/content.md 的正文注入%%CONTENT%%update.sh由 .template-helpers/variant.sh 依据标签列表挑选匹配的variant-*.md片段如默认的variant.md与 Alpine 的variant-alpine.md注入%%VARIANT%%update.sh最后注入 Logo、许可证与维护方信息update.sh。这也解释了为何 azul-zulu/README.md 顶部会有 DO NOT EDIT / IT IS AUTO-GENERATED 的警告——任何对镜像文档的修改都应落在content.md等源文件中再运行./update.sh azul-zulu重新生成。许可证与合规使用镜像内软件遵循双重许可证框架详见 azul-zulu/license.mdAzul Docker 许可证覆盖镜像内 Azul Zulu 相关软件OpenJDK 许可证OpenJDK 本体基于 GPLv2 Classpath ExceptionGPLv2CE允许自由使用与分发。需要特别注意的是与所有 Docker 镜像一样镜像内还可能包含基础发行版带来的其他软件如 Bash 等它们各有独立的许可证自动检测到的部分附加许可证信息可在 repo-info 仓库的azul-zulu/目录中查询。使用预构建镜像前镜像使用者有责任确认镜像内所有软件的使用方式符合其相应许可证的要求该通用条款模板见 .template-helpers/license-common.md。小结azul-zulu官方镜像以OpenJDK 版本 × 包类型 × 基础系统的三维矩阵覆盖了从开发到生产的全部 Java 运行需求通过完整标签8.96-8.0.504-jdk-debian13可以精确定位每一个具体构建通过别名标签17、21-jre等可以快速引用常用组合默认 Debian 变体兼容性最佳Alpine 变体则适合对镜像体积敏感的场景。结合本仓库的生成管线你既可以直接使用这些标签运行容器、构建应用镜像也可以在需要时追踪content.md与update.sh理解文档与镜像的更新来源。赞分享文档【免费下载链接】docsDocumentation for Docker Official Images in docker-library项目地址https://gitcode.com/gh_mirrors/docs/docs点击查看免费下载相关推荐Azul Zulu Builds of OpenJDK Docker 官方镜像完全指南版本矩阵、运行方式与 Dockerfile 实战Azul Zulu Builds of OpenJDK Docker 官方镜像完全指南版本矩阵、运行方式与 Dockerfile 实战 Azul Zulu B文档Apache Groovy Docker 官方镜像完全指南标签体系、容器化运行与镜像变体选择Apache Groovy Docker 官方镜像完全指南标签体系、容器化运行与镜像变体选择 导读 本文以 Docker Official Images 文档文档Docker 官方 Node.js 镜像完全指南标签体系、镜像变体与多架构支持解析Docker 官方 Node.js 镜像完全指南标签体系、镜像变体与多架构支持解析 本篇指南基于 Docker Official Images 文档仓库do文档创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
阅读完成 · 觉得有帮助?
咨询建站