ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Tomcat Docker 官方镜像快速上手:挂载应用、切换 JDK 版本与常用启动参数实操教程

Tomcat Docker 官方镜像快速上手:挂载应用、切换 JDK 版本与常用启动参数实操教程 Tomcat Docker 官方镜像快速上手挂载应用、切换 JDK 版本与常用启动参数实操教程【免费下载链接】tomcatDocker Official Image packaging for Apache Tomcat项目地址: https://gitcode.com/gh_mirrors/to/tomcat本文面向新手带你用Tomcat Docker 官方镜像Apache Tomcat 的 Docker 官方镜像封装完成从零到上线的快速部署。重点实操三件高频任务挂载你的应用、按标签切换 JDK 版本、调整常用启动参数内存、端口、时区3 分钟即可在容器里跑起自己的 Web 服务。一、先看懂镜像标签Tomcat 版本 × JDK 版本的组合规则Tomcat 官方镜像的标签遵循一套清晰的组合规则看懂就能自由选型tomcat:Tomcat大版本-jdk|jreJDK版本例如tomcat:10.1-jdk11、tomcat:9.0-jdk8、tomcat:11.0-jdk21。当前仓库维护的版本矩阵来源versions.json如下Tomcat 大版本当前版本可选 JDK基础系统9.09.0.1218 / 11 / 17 / 21 / 25Ubuntu jammy(22.04) / noble(24.04)10.110.1.5911 / 17 / 21 / 25Ubuntu jammy / noble11.011.0.2517 / 21 / 25Ubuntu jammy / noble几个新手需要知道的关键点JDK 一律来自 Eclipse Temurinjammy表示 Ubuntu 22.04noble表示 Ubuntu 24.04基础镜像为eclipse-temurin:版本-jdk见 from.jq。jdk与jre的区别jdk标签会在构建时从源码编译 Tomcat NativeAPR/SSL 加速库jre标签直接复用同版本jdk镜像的 Tomcat 目录、只装运行依赖镜像更精简见 Dockerfile.template 中的两种构建分支。每个变体在仓库中都有独立目录如9.0/jdk11/temurin-jammy/Dockerfile由模板统一生成请勿手改。二、一条命令启动3 分钟跑起 Tomcat 容器执行下面这条命令即可启动一个 Tomcat 10.1 JDK 11 的容器docker run --name tomcat -d -p 8080:8080 tomcat:10.1-jdk11启动成功后浏览器访问http://localhost:8080即可。它背后的机制非常直白见 9.0/jdk11/temurin-jammy/Dockerfile工作目录是/usr/local/tomcat即CATALINA_HOMEbin已加入PATH镜像默认EXPOSE 8080默认启动命令为catalina.sh run。重要细节镜像内的webapps目录默认是空的——官方自带的示例应用被移到了webapps.dist目录中。这是官方有意为之方便你直接放入自己的应用而无需先清理。三、挂载应用把你的 war 包送进容器容器内webapps是空的那么自己的应用怎么进去最推荐的做法是卷挂载无需重新构建镜像。方式一挂载单个 war 包最常用docker run -d -p 8080:8080 \ -v /path/to/your-app.war:/usr/local/tomcat/webapps/your-app.war \ tomcat:10.1-jdk11访问http://localhost:8080/your-app/即可。方式二挂载整个 webapps 目录本地开发热更新docker run -d -p 8080:8080 \ -v ./my-webapps:/usr/local/tomcat/webapps \ tomcat:10.1-jdk11方式三持久化日志生产环境建议-v ./tomcat-logs:/usr/local/tomcat/logs补充一点安心细节官方镜像构建时已对logs、temp、work目录执行chmod 1777见 10.1/jdk17/temurin-noble/Dockerfile即使容器以非 root 用户运行挂载卷的写入也不会有权限问题。四、切换 JDK 版本换标签即可但要注意兼容矩阵切换 JDK 版本不需要任何配置改标签即可docker run --name tomcat -d -p 8080:8080 tomcat:11.0-jdk21但并非任意 JDK 都能搭配任意 Tomcat 大版本官方兼容规则与 shared.jq 中的校验逻辑一致是Tomcat 版本最低 JDK 要求9.xJDK 810.1.xJDK 1111.xJDK 17选型口诀新项目优先tomcat:11.0-jdk21老项目兼容期可选tomcat:9.0-jdk8追求小镜像把jdk换成jre。想确认容器里到底装了什么版本一条命令即可docker run --rm tomcat:10.1-jdk11 java -version docker run --rm tomcat:10.1-jdk11 catalina.sh version五、常用启动参数内存、端口、时区一键调整 ⚙️Tomcat 的启动脚本catalina.sh原生支持通过环境变量和命令行参数调优容器场景下都能直接套用。1调整 JVM 内存高频docker run -d -p 8080:8080 \ -e CATALINA_OPTS-Xms256m -Xmx512m \ tomcat:10.1-jdk112修改 HTTP 服务端口镜像默认命令是catalina.sh run且 Temurin 基座已清空 ENTRYPOINT你可以直接在命令末尾追加参数覆盖它docker run -d -p 8080:8443 tomcat:10.1-jdk11 catalina.sh run -server 84433修正时区避免日志时间差 8 小时-e TZAsia/Shanghai组合拳示例一条命令完成内存 时区 应用挂载docker run --name tomcat -d -p 8080:8080 \ -e CATALINA_OPTS-Xms256m -Xmx512m \ -e TZAsia/Shanghai \ -v ./app.war:/usr/local/tomcat/webapps/app.war \ tomcat:10.1-jdk11六、进阶定制自己的 Tomcat 镜像 如果需要把应用固化进镜像而非每次挂载基于官方标签派生即可两步搞定FROM tomcat:10.1-jdk11 COPY target/your-app.war /usr/local/tomcat/webapps/对比官方仓库的 Dockerfile.template 你会发现官方镜像还做了 SHA512 校验、GPG 签名验证、Tomcat Native 编译等大量安全与性能加固——自己派生时继承官方标签这些加固全部免费获得。七、新手常见问题速查现象原因与处理Bind for 0.0.0.0:8080 failed: port is already allocated端口被占用改用-p 8088:8080访问应用返回 404默认webapps为空检查 war 挂载路径与目录名是否一致启动慢、卡住不动docker logs -f tomcat实时查看 Tomcat 输出日志时间与本地不一致加-e TZAsia/Shanghai想换 JDK 版本直接改标签如tomcat:10.1-jdk21注意兼容矩阵小结Tomcat Docker 官方镜像把「下载、解压、配置 Tomcat」这件烦心事全部封装成了简单的标签选择选标签tomcat:大版本-jdk|jreJDK版本牢记兼容矩阵跑起来docker run -d -p 8080:8080 tomcat:10.1-jdk11挂应用-v ./app.war:/usr/local/tomcat/webapps/app.war调参数CATALINA_OPTS管内存-server管端口TZ管时区。掌握以上四步你就能在任意 Linux 环境里快速、干净地部署 Tomcat 服务了。☕【免费下载链接】tomcatDocker Official Image packaging for Apache Tomcat项目地址: https://gitcode.com/gh_mirrors/to/tomcat创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表