FEATURED · 精选文章

Tomcat Docker 官方镜像:为什么它值得一看?Docker 部署 Apache Tomcat 的最省心选择全解析

发布时间 / 2026/8/24 8:56:03
来源 / 创域科博编辑部
栏目 / 资讯中心
Tomcat Docker 官方镜像:为什么它值得一看?Docker 部署 Apache Tomcat 的最省心选择全解析 Tomcat Docker 官方镜像为什么它值得一看Docker 部署 Apache Tomcat 的最省心选择全解析【免费下载链接】tomcatDocker Official Image packaging for Apache Tomcat项目地址: https://gitcode.com/gh_mirrors/to/tomcat如果你希望以最省心的方式Docker 部署 Apache Tomcat那么Tomcat Docker 官方镜像就是少数下载即用的优质选择。本项目正是 Docker Hub 上tomcat官方镜像的源码打包仓库由 Docker 社区维护覆盖 Tomcat 9.0 / 10.1 / 11.0 三大版本支持 JDK/JRE 8 到 25 的多种组合内置签名校验与冒烟测试。下面用 6 个小节讲清楚它是什么、有哪些版本、标签怎么选、Dockerfile 里藏了哪些安全细节、版本如何一键更新。一、什么是 Tomcat Docker 官方镜像一句话概括一套官方镜像的 Dockerfile 模板 自动化更新脚本。你平时docker pull的tomcat并不是 Apache 官方直接发布的镜像而是由 Docker 社区统一打包维护的官方镜像本仓库就是它背后的装配线所有镜像的源头是唯一的 Dockerfile.template再由脚本批量生成每个变体的 Dockerfile每个生成的 Dockerfile 顶部都标注本文件由模板自动生成请勿直接编辑保证几十个标签之间的一致性。 核心文件地图仓库内相对路径文件作用Dockerfile.template主模板下载 Tomcat、校验签名、编译 Tomcat Nativeversions.json记录每个大版本的最新 Tomcat 版本号与 sha512 指纹versions.sh扫描 Apache 官方下载站抓取最新稳定版apply-templates.sh把模板渲染成各变体目录下的 Dockerfileupdate.sh一键入口更新版本 重新生成全部 Dockerfile二、Tomcat 版本矩阵3 个大版本 × 多种 Java 组合镜像矩阵由「Tomcat 版本 × Java 版本」两个维度生成versions.json记录的当前最新版本Tomcat 大版本最新版本支持的 Java适用场景11.011.0.25JDK/JRE 17 / 21 / 25新项目、尝鲜最新特性10.110.1.59JDK/JRE 11 / 17 / 21 / 25主流之选兼容 Jakarta EE9.09.0.121JDK/JRE 8 / 11 / 17 / 21 / 25存量系统、老 Java 8 应用 注意兼容规则Tomcat 11 需要 Java 17Tomcat 10.1 需要 Java 11Tomcat 9.0 支持 Java 8。这条规则硬编码在shared.jq的is_supported_java_version函数里生成时自动过滤所以你永远不会看到tomcat:11-jdk8这种不存在的组合。基础镜像统一采用 Eclipse TemurinAdoptiumJDK/JRE底层系统提供jammyUbuntu 22.04与nobleUbuntu 24.04两种选择。三、如何选对 Tomcat 镜像标签一条命名规律标签结构非常规律看懂一次就够用tomcat:Tomcat版本-jdk|jreJava版本-temurin-jammy|noblejdk 变体带编译器适合容器内需要编译的场景jre 变体只有运行时体积更小适合绝大多数纯部署场景例如标签tomcat:10.1.59-jdk21-temurin-noble对应的就是仓库里的10.1/jdk21/temurin-noble/Dockerfile不带版本号的latest标签指向最新的 11.x 发布。一句话选版建议新项目直接选 10.1 或 11.0 系列搭配 JDK 21如果应用还停在 Java 8只能选 9.0 系列。四、三步启动 Tomcat 容器最快上手方法官方镜像默认命令是catalina.sh run并已声明 8080 端口# 一条命令启动 Tomcat 容器 docker run -d -p 8080:8080 --name mytomcat tomcat:10.1-jdk21-temurin-noble # 挂载自己的 Web 应用目录 docker run -d -p 8080:8080 -v $PWD/myapp:/usr/local/tomcat/webapps/myapp \ --name mytomcat tomcat:9.0-jdk8-temurin-noble几个值得了解的细节默认 webapps 已被挪走官方镜像把 Tomcat 自带示例应用移到webapps.dist只留空webapps目录减少生产环境的多余攻击面JRE 镜像复用 JDK 构建产物jre 变体的 Dockerfile 直接从对应 jdk 镜像COPY已装好的 Tomcat见10.1/jre21/temurin-noble/Dockerfile第 22 行体积更小且行为完全一致8080 是唯一声明端口HTTPS 8443 等端口需要挂载server.xml自行配置。五、幕后揭秘Dockerfile 里的 4 道安全细节很多人只负责docker pull但了解官方镜像生产线的严谨程度会让你更放心。打开任意生成的 Dockerfile如10.1/jdk21/temurin-noble/Dockerfile能找到 4 层防护5.1 三通道下载 sha512 指纹校验ddist函数先从 Apache 官方 CDN 下载 Tomcat 包版本过期时自动回退归档站最后兜底 Maven 中央仓库下载完成后用sha512sum --strict严格校验指纹就记录在versions.json中。5.2 GPG 签名校验 固定密钥白名单它不是导入全部 Apache 密钥放行而是下载官方 KEYS 文件后只筛选预先写定的指纹对应各大版本 Tomcat 的维护者再验签这段逻辑维护在Dockerfile.template中。5.3 现场编译 Tomcat Native 加速库jdk 镜像会安装 APR/SSL 依赖用全部 CPU 核心编译 Tomcat Native基于 APR 的性能加速库并在构建时用catalina.sh configtest做冒烟测试——原生库加载失败构建直接失败。5.4 面向非 root 用户的权限修正chmod -R rX与chmod 1777 logs temp work确保容器可以非 root 用户运行日志、临时、工作目录对应用都可写。六、一键更新update.sh 的完整更新流程如果你 fork 了本仓库版本更新只需一条命令./update.sh它内部依次做两件事versions.sh扫描 Apache 下载站为每个大版本找到最新稳定版自动跳过-M里程碑版本取出 sha512 写入versions.json同时探测当前可用的 Java 变体组合apply-templates.sh读取 json用 jq 模板把Dockerfile.template渲染到每个变体目录整体重写9.0/、10.1/、11.0/三个版本目录。也就是说本地每个变体目录下的Dockerfile都是这条流水线的最终产物。想深入模板逻辑可阅读from.jq负责按变体名推导基础镜像和shared.jq版本兼容规则。想克隆本仓库到本地研究git clone https://gitcode.com/gh_mirrors/to/tomcat总结这个镜像仓库值得一看的 3 个理由版本矩阵全3 个 Tomcat 大版本 × 最多 5 个 Java 版本 × JDK/JRE × 2 种 Ubuntu 系统新老应用都能找到合适的镜像安全流程专业三路下载源、sha512 GPG 双重校验、Tomcat Native 现场编译并冒烟测试零配置开箱默认catalina.sh run、暴露 8080、默认 webapps 已清理、兼容非 root 运行一条docker run即可投产。只是部署 Tomcat直接用官方镜像即可想弄清官方镜像是怎么构建出来的或者搭一条自己的私有镜像流水线本仓库的Dockerfile.template、update.sh与两个.jq规则文件就是最值得细读的教材。【免费下载链接】tomcatDocker Official Image packaging for Apache Tomcat项目地址: https://gitcode.com/gh_mirrors/to/tomcat创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED — 相关阅读

相关资讯

LATEST — 最新资讯

最新发布

TODAY — 本日精选

新闻

WEEKLY — 本周精选

新闻

MONTHLY — 本月精选

新闻