本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com
Apache Tomcat 是一款开源Web服务器,用于托管和运行基于Java的Web应用程序。它是一款轻量级服务器,在生产环境中运行应用时性能表现良好。
Apache Tomcat 概览
商标说明:本软件包由Bitnami打包。所提及的商标分属各自公司所有,使用此类商标不意味着任何关联或背书。
docker 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仓库拉取预构建镜像。
docker pull bitnami/tomcat:latest
如需指定版本,可拉取带版本标签的镜像。可用版本列表可在Docker Hub查看。
docker pull bitnami/tomcat:[TAG]
如需自定义构建,可克隆仓库并执行docker build命令(替换示例中的APP、VERSION和OPERATING-SYSTEM占位符):
git clone [***] bitnami/APP/VERSION/OPERATING-SYSTEM docker build -t bitnami/APP:latest .
删除容器后,所有数据和配置将丢失,下次运行镜像时需重新初始化。为避免数据丢失,应挂载持久化卷(容器删除后仍保留)。
需将目录挂载到/bitnami路径。若挂载的目录为空,首次运行时会自动初始化。
docker run -v /path/to/tomcat-persistence:/bitnami bitnami/tomcat:latest
修改仓库中的docker-compose.yml文件:
services: tomcat: ... volumes: - /path/to/tomcat-persistence:/bitnami ...
注意:由于此为非root容器,挂载的文件和目录需对UID
1001有正确权限。
/bitnami/tomcat/data目录被配置为Apache Tomcat的webapps部署目录。可在此路径放置解压的Web应用(非压缩格式)或压缩的Web应用资源(.WAR文件),Tomcat会自动部署。
此外,容器中存在符号链接/app指向该部署目录,可通过以下命令在运行中的Tomcat实例上部署应用:
docker cp /path/to/app.war tomcat:/app
如需构建包含WAR文件的自定义镜像,需将WAR文件添加到/opt/bitnami/tomcat/webapps目录。示例Dockerfile:
FROM bitnami/tomcat:latest COPY sample.war /opt/bitnami/tomcat/webapps
补充说明:也可通过Apache Tomcat管理界面在运行中的实例上部署应用。
更多详情参见:Apache Tomcat Web应用部署文档
可让Docker将主机随机端口映射到容器的8080端口:
docker run --name tomcat -P bitnami/tomcat:latest
执行docker port命令查看映射的随机端口:
$ docker port tomcat 8080/tcp -> 0.0.0.0:32768
手动指定主机到容器的端口转发:
docker 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:
services: tomcat: ... environment: - TOMCAT_USERNAME=my_user - TOMCAT_PASSWORD=my_password ...
docker run --name tomcat \ -e TOMCAT_USERNAME=my_user \ -e TOMCAT_PASSWORD=my_password \ bitnami/tomcat:latest
容器初始化时,默认Tomcat配置文件会通过环境变量修改基础选项。如需添加更多自定义配置,可挂载自定义配置文件到/opt/bitnami/tomcat/conf/目录以覆盖默认文件(确保文件对容器系统用户可写)。
docker run --name tomcat -v /path/to/config/server.xml:/opt/bitnami/tomcat/conf/server.xml bitnami/tomcat:latest
services: 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,可通过以下命令查看:
docker logs tomcat
docker-compose logs tomcat
如需自定义日志消费方式,可通过--log-driver选项配置容器日志驱动(默认使用json-file驱动)。
Bitnami会及时提供Apache Tomcat的更新版本(含安全补丁),建议按以下步骤升级容器:
docker pull bitnami/tomcat:latest
(使用Docker Compose时,将image属性更新为bitnami/tomcat:latest)
停止容器:
docker stop tomcat
(Docker Compose:docker-compose stop tomcat)
备份持久化卷(/path/to/tomcat-persistence):
rsync -a /path/to/tomcat-persistence /path/to/tomcat-persistence.bkp.$(date +%Y%m%d-%H.%M.%S)
docker rm -v tomcat
(Docker Compose:docker-compose rm -v tomcat)
docker 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 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429