Apache Tomcat 是一款开源Web服务器,用于托管和运行基于Java的Web应用程序。它是一款轻量级服务器,在生产环境中运行应用时性能表现良好。
Apache Tomcat 概览
商标说明:本软件包由Bitnami打包。所提及的商标分属各自公司所有,使用此类商标不意味着任何关联或背书。
consoledocker run --name tomcat bitnami/tomcat:latest
默认凭据和可用配置选项可在环境变量部分查看。
此镜像为Bitnami构建和维护的强化版最小漏洞(CVE)镜像。Bitnami安全镜像(BSI)基于云优化、安全强化的企业级操作系统Photon Linux构建。选择BSI镜像的理由包括:
每个镜像均附带安全元数据,可在公开目录中查看(部分数据需BSI商业订阅)。
如需基于Debian Linux的旧版镜像,请查看Bitnami Legacy仓库。
通过Helm Chart部署Bitnami应用是在Kubernetes上快速启动的最简单方式。安装详情参见Bitnami Apache Tomcat Chart GitHub仓库。
非root容器增加了额外安全层,通常推荐用于生产环境。但由于容器以非root用户运行,特权任务通常受限。更多信息参见非root容器文档。
了解Bitnami标签策略(滚动标签与固定标签的区别),参见文档页面。
不同标签的对应关系可查看分支文件夹中的tags-info.yaml文件(如bitnami/ASSET/BRANCH/DISTRO/tags-info.yaml)。
可通过关注bitnami/containers GitHub仓库获取项目更新。
获取Bitnami Apache Tomcat Docker镜像的推荐方式是从Docker Hub仓库拉取预构建镜像。
consoledocker pull bitnami/tomcat:latest
如需指定版本,可拉取带版本标签的镜像。可用版本列表可在Docker Hub查看。
consoledocker pull bitnami/tomcat:[TAG]
如需自定义构建,可克隆仓库并执行docker build命令(替换示例中的APP、VERSION和OPERATING-SYSTEM占位符):
consolegit clone [***] bitnami/APP/VERSION/OPERATING-SYSTEM docker build -t bitnami/APP:latest .
删除容器后,所有数据和配置将丢失,下次运行镜像时需重新初始化。为避免数据丢失,应挂载持久化卷(容器删除后仍保留)。
需将目录挂载到/bitnami路径。若挂载的目录为空,首次运行时会自动初始化。
consoledocker run -v /path/to/tomcat-persistence:/bitnami bitnami/tomcat:latest
修改仓库中的docker-compose.yml文件:
yamlservices: tomcat: ... volumes: - /path/to/tomcat-persistence:/bitnami ...
注意:由于此为非root容器,挂载的文件和目录需对UID
1001有正确权限。
/bitnami/tomcat/data目录被配置为Apache Tomcat的webapps部署目录。可在此路径放置解压的Web应用(非压缩格式)或压缩的Web应用资源(.WAR文件),Tomcat会自动部署。
此外,容器中存在符号链接/app指向该部署目录,可通过以下命令在运行中的Tomcat实例上部署应用:
consoledocker cp /path/to/app.war tomcat:/app
如需构建包含WAR文件的自定义镜像,需将WAR文件添加到/opt/bitnami/tomcat/webapps目录。示例Dockerfile:
DockerfileFROM bitnami/tomcat:latest COPY sample.war /opt/bitnami/tomcat/webapps
补充说明:也可通过Apache Tomcat管理界面在运行中的实例上部署应用。
更多详情参见:Apache Tomcat Web应用部署文档
可让Docker将主机随机端口映射到容器的8080端口:
consoledocker run --name tomcat -P bitnami/tomcat:latest
执行docker port命令查看映射的随机端口:
console$ docker port tomcat 8080/tcp -> 0.0.0.0:32768
手动指定主机到容器的端口转发:
consoledocker run -p 8080:8080 bitnami/tomcat:latest
在浏览器中访问 `[***] 即可打开服务器。
| 名称 | 描述 | 默认值 |
|---|---|---|
TOMCAT_SHUTDOWN_PORT_NUMBER | Tomcat关闭端口号 | 8005 |
TOMCAT_HTTP_PORT_NUMBER | Tomcat HTTP端口号 | 8080 |
TOMCAT_AJP_PORT_NUMBER | Tomcat AJP端口号 | 8009 |
TOMCAT_USERNAME | Tomcat管理用户名 | manager |
TOMCAT_PASSWORD | Tomcat管理用户密码 | nil(未设置) |
TOMCAT_ALLOW_REMOTE_MANAGEMENT | 是否允许远程地址访问Tomcat管理应用 | yes |
TOMCAT_ENABLE_AUTH | 是否启用Tomcat管理应用的身份验证 | yes |
TOMCAT_ENABLE_AJP | 是否启用Tomcat AJP连接器 | no |
TOMCAT_START_RETRIES | 等待Catalina启动的重试次数 | 12 |
TOMCAT_EXTRA_JAVA_OPTS | Tomcat的额外Java配置参数 | nil(无) |
TOMCAT_INSTALL_DEFAULT_WEBAPPS | 是否部署默认Web应用(ROOT、manager、host-manager等) | yes |
JAVA_OPTS | Java运行时参数 | -Djava.awt.headless=true -XX:+UseG1GC -Dfile.encoding=UTF-8 -Djava.net.preferIPv4Stack=true -Djava.net.preferIPv4Addresses=true -Duser.home=${TOMCAT_HOME} |
| 名称 | 描述 | 值 |
|---|---|---|
TOMCAT_BASE_DIR | Tomcat安装目录 | ${BITNAMI_ROOT_DIR}/tomcat |
TOMCAT_VOLUME_DIR | Tomcat持久化目录 | /bitnami/tomcat |
TOMCAT_BIN_DIR | Tomcat二进制文件目录 | ${TOMCAT_BASE_DIR}/bin |
TOMCAT_LIB_DIR | Tomcat库文件目录 | ${TOMCAT_BASE_DIR}/lib |
TOMCAT_WORK_DIR | Tomcat运行时文件目录 | ${TOMCAT_BASE_DIR}/work |
TOMCAT_WEBAPPS_DIR | Web应用存储目录 | ${TOMCAT_VOLUME_DIR}/webapps |
TOMCAT_CONF_DIR | Tomcat配置目录 | ${TOMCAT_BASE_DIR}/conf |
TOMCAT_DEFAULT_CONF_DIR | Tomcat默认配置目录 | ${TOMCAT_BASE_DIR}/conf.default |
TOMCAT_CONF_FILE | Tomcat配置文件 | ${TOMCAT_CONF_DIR}/server.xml |
TOMCAT_USERS_CONF_FILE | Tomcat用户配置文件 | ${TOMCAT_CONF_DIR}/tomcat-users.xml |
TOMCAT_LOGS_DIR | Tomcat日志目录 | ${TOMCAT_BASE_DIR}/logs |
TOMCAT_TMP_DIR | Tomcat临时文件目录 | ${TOMCAT_BASE_DIR}/temp |
TOMCAT_LOG_FILE | Tomcat日志文件路径 | ${TOMCAT_LOGS_DIR}/catalina.out |
TOMCAT_PID_FILE | Tomcat进程ID文件路径 | ${TOMCAT_TMP_DIR}/catalina.pid |
TOMCAT_HOME | Tomcat主目录 | $TOMCAT_BASE_DIR |
TOMCAT_DAEMON_USER | Tomcat系统用户 | tomcat |
TOMCAT_DAEMON_GROUP | Tomcat系统用户组 | tomcat |
JAVA_HOME | Java安装目录 | ${BITNAMI_ROOT_DIR}/java |
默认会创建名为manager的管理用户,未设置密码。首次运行镜像时,通过TOMCAT_PASSWORD环境变量可设置该用户密码。
还可通过TOMCAT_USERNAME指定管理用户名。若未指定,TOMCAT_PASSWORD将应用于默认用户(manager)。
修改仓库中的docker-compose.yml:
yamlservices: tomcat: ... environment: - TOMCAT_USERNAME=my_user - TOMCAT_PASSWORD=my_password ...
consoledocker run --name tomcat \ -e TOMCAT_USERNAME=my_user \ -e TOMCAT_PASSWORD=my_password \ bitnami/tomcat:latest
容器初始化时,默认Tomcat配置文件会通过环境变量修改基础选项。如需添加更多自定义配置,可挂载自定义配置文件到/opt/bitnami/tomcat/conf/目录以覆盖默认文件(确保文件对容器系统用户可写)。
consoledocker run --name tomcat -v /path/to/config/server.xml:/opt/bitnami/tomcat/conf/server.xml bitnami/tomcat:latest
yamlservices: tomcat: ... volumes: - /path/to/config/server.xml:/opt/bitnami/tomcat/conf/server.xml ...
完整配置选项参见Apache Tomcat配置手册。
Bitnami安全镜像目录中的Apache Tomcat Docker镜像支持FIPS配置,可通过以下环境变量设置:
OPENSSL_FIPS:是否启用OpenSSL FIPS模式,默认yes(启用),可选no(禁用)。Bitnami Apache Tomcat Docker镜像将容器日志输出到stdout,可通过以下命令查看:
consoledocker logs tomcat
consoledocker-compose logs tomcat
如需自定义日志消费方式,可通过--log-driver选项配置容器日志驱动(默认使用json-file驱动)。
Bitnami会及时提供Apache Tomcat的更新版本(含安全补丁),建议按以下步骤升级容器:
consoledocker pull bitnami/tomcat:latest
(使用Docker Compose时,将image属性更新为bitnami/tomcat:latest)
停止容器:
consoledocker stop tomcat
(Docker Compose:docker-compose stop tomcat)
备份持久化卷(/path/to/tomcat-persistence):
consolersync -a /path/to/tomcat-persistence /path/to/tomcat-persistence.bkp.$(date +%Y%m%d-%H.%M.%S)
consoledocker rm -v tomcat
(Docker Compose:docker-compose rm -v tomcat)
consoledocker run --name tomcat bitnami/tomcat:latest
(Docker Compose:docker-compose up tomcat)
rootfs/目录中的Bash脚本。1001运行(此前容器以root运行,Tomcat以tomcat用户运行)。因此,数据目录需对该用户可写。可通过修改Dockerfile中USER 1001为USER root恢复root模式。TOMCAT_USER参数重命名为TOMCAT_USERNAME。/bitnami/tomcat,仅需挂载单个卷即可实现持久化。stdout,不再存储于卷中。docker-compose.yaml请注意,此文件未经过内部测试,建议仅用于开发或测试环境。生产环境部署强烈推荐使用其关联的Bitnami Helm Chart。
如发现docker-compose.yaml问题,可按贡献指南报告或修复。
欢迎通过提交issue或拉取请求参与容器改进(遵循贡献指南)。
如运行容器时遇到问题,可提交issue(建议填写issue模板以获得更好支持)。
Copyright © 2025 Broadcom。"Broadcom"指Broadcom Inc.及其子公司。
根据Apache License 2.0许可协议授权(详见LICENSE)。使用本文件需遵守许可协议,除非***要求或书面同意,软件按"原样"分发,不提供任何明示或暗示担保。

来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429