尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

Tomcat Docker 官方镜像标签大全:120+ 种 JDK/JRE、9/10/11 版本如何选?一图看懂不踩坑

Tomcat Docker 官方镜像标签大全:120+ 种 JDK/JRE、9/10/11 版本如何选?一图看懂不踩坑 Tomcat Docker 官方镜像标签大全120 种 JDK/JRE、9/10/11 版本如何选一图看懂不踩坑【免费下载链接】tomcatDocker Official Image packaging for Apache Tomcat项目地址: https://gitcode.com/gh_mirrors/to/tomcatTomcat Docker 官方镜像tomcat是 Docker Hub 上最受欢迎的 Java Web 容器镜像之一。本仓库 gh_mirrors/to/tomcat 正是这套官方镜像的打包源码3 个 Tomcat 大版本9.0 / 10.1 / 11.0× JDK/JRE × Ubuntu 基座共 48 个镜像变体展开标签别名后超过 120 个可用标签。本文带你 5 分钟看懂标签命名规则快速选对镜像不踩坑。️ 标签命名规则4 段式结构一次看懂Tomcat 镜像的完整标签遵循固定结构tomcat:Tomcat版本-JDK或JRE版本号-Java供应商-Ubuntu基座以tomcat:10.1-jdk21-temurin-jammy为例拆解片段含义示例取值10.1Tomcat 大版本9.0、10.1、11.0jdk21Java 类型 版本JDK 可编译JRE 仅运行jre8~jdk25temurinJava 供应商Eclipse Temurintemurin、openjdkjammy/nobleUbuntu 基座22.04 / 24.04jammy、noblejammy Ubuntu 22.04 LTSnoble Ubuntu 24.04 LTS。不确定选哪个时优先选noble更新。 全量标签地图9.0 / 10.1 / 11.0 支持哪些 Java 版本这是本文最重要的一图看懂表格数据来自 versions.jsonTomcat 大版本最低 Java 版本支持的 JDK/JRE变体数量11.0最新Java 17jdk17 / jdk21 / jdk25 及对应 jre12 个10.1主流Java 11jdk11 / jdk17 / jdk21 / jdk25 及对应 jre16 个9.0老项目Java 8jdk8 / jdk11 / jdk17 / jdk21 / jdk25 及对应 jre20 个每个变体又对应temurin-jammy与temurin-noble两套基座目录结构与标签一一对应例如11.0/jdk25/temurin-noble/Dockerfile→tomcat:11.0-jdk25-temurin-noble10.1/jdk21/temurin-jammy/Dockerfile→tomcat:10.1-jdk21-temurin-jammy9.0/jre8/temurin-jammy/Dockerfile→tomcat:9.0-jre8-temurin-jammy版本与 SHA512 校验值集中记录在 versions.json 中保证拉取到的二进制与 Apache 官方发布完全一致。 Tomcat 大版本怎么选3 条决策原则1️⃣ 新项目直接用11.0功能最新但注意Java 17 起步不支持 Java 8/11。2️⃣ 主流生产环境选10.1社区使用最广兼容 Java 11资料最全。3️⃣ 存量老系统才留在9.0唯一支持 Java 8 的版本。⚠️ 特别注意9.0 使用旧的javax.*Servlet 命名空间10.x 起已迁移到jakarta.*两者不互通——这是从 9 升到 10/11 时最大的坑需先改代码命名空间再换镜像。☕ JDK 还是 JRE一句话讲清JDK 镜像带编译器体积更大。适合需要在线编译 JSP、或镜像内执行 Java 构建的场景。JRE 镜像只有运行时体积更小、攻击面更小。Tomcat 官方镜像的 JRE 变体是从同版本 JDK 镜像直接复制而来见 Dockerfile.template 中的多阶段COPY逻辑安全继承 JDK 变体已通过 GPG 校验的安装。✅ 经验法则生产部署选 JRE开发和调试选 JDK拿不准时选 JDK代价只是几十 MB 体积。 标签别名怎么读latest到底指向谁每个变体目录会展开成一串别名由 generate-stackbrew-library.sh 生成规则是别名示例以 10.1.59 JDK21 temurin-noble 为例含义10.1.59-jdk21-temurin-noble精确到补丁版本生产环境推荐锁定10.1-jdk21-temurin省略基座自动跟随最新基座10.1-jdk21省略供应商默认 Temurin10-jdk21大版本简写10.1.59/10.1/10不指定 Java指向该版本默认变体11/11.0/latest指向11.0 默认变体记忆口诀latest永远 11.0 默认变体10 10.1 默认变体9 9.0 默认变体。别名映射逻辑见 generate-stackbrew-library.sh 中的aliases表。 快速上手3 条命令跑起来# 1. 拉取 10.1 JDK21 Temurin(Noble) 变体 docker pull tomcat:10.1-jdk21-temurin-noble # 2. 启动默认 8080 端口内置 catalina.sh run docker run -d -p 8080:8080 --name my-tomcat tomcat:10.1-jdk21-temurin-noble # 3. 挂载自己的 WAR 包 docker run -d -p 8080:8080 \ -v $(pwd)/myapp.war:/usr/local/tomcat/webapps/ROOT.war \ tomcat:10.1-jdk21-temurin-noble镜像内部已为你做好的事可对照 10.1/jdk21/temurin-jammy/Dockerfile✅ SHA512 校验 GPG 签名验证防篡改✅ 内置并编译Tomcat NativeAPR高性能库✅ 默认示例 webapps 移至webapps.distwebapps目录是干净的✅logs、temp、work权限已放开支持非 root 用户运行✅ 暴露8080端口默认命令catalina.sh run 幕后揭秘48 个 Dockerfile 是如何自动生成的你不需要手动维护 48 份 Dockerfile整个仓库只有一份模板versions.sh抓取 Apache 下载站的最新版本号与 SHA512并过滤出各 Tomcat 版本支持的 Java 版本规则见 shared.jqapply-templates.sh读取 versions.json把 Dockerfile.template 渲染成9.0/、10.1/、11.0/下各变体目录的 Dockerfilefrom.jq决定每个变体基于哪个eclipse-temurin/openjdk基础镜像。一键执行入口就是 update.sh./versions.sh→./apply-templates.sh全部完成。这也是为什么你在仓库里看到的每个 Dockerfile 顶部都写着GENERATED VIA apply-templates.sh, PLEASE DO NOT EDIT。⚠️ 避坑清单6 个最常踩的坑#坑正确姿势1生产环境直接用latest/10等浮动标签锁定10.1.59-jdk21-temurin-noble级别的精确标签2给 11.0 配 Java 8/1111.0 只有 jdk17 起步标签根本不存在39.0 的 WAR 直接部署到 10/11先完成javax.*→jakarta.*命名空间迁移4只想要运行时却拉了 JDK生产优先jre变体更小更安全5以为镜像里有默认示例站点示例已移到webapps.distwebapps是空的6想改端口只改-p映射只改映射即可但注意server.xml内默认仍是 8080 小结一张图记住选型逻辑新项目 ──────────────→ 11.0-jdk21或 jre21 主流生产 ─────────────→ 10.1-jre17-temurin-noble锁定精确补丁版本 老系统 / 需要 Java 8 ─→ 9.0-jre8 拿不准 JDK/JRE ──────→ 开发用 JDK生产用 JRE把 versions.json 当作标签全集的权威索引按Tomcat 大版本 → Java 版本 → 供应商基座三层依次收敛任何标签都能 10 秒内定位到对应的构建目录。祝部署顺利【免费下载链接】tomcatDocker Official Image packaging for Apache Tomcat项目地址: https://gitcode.com/gh_mirrors/to/tomcat创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表