You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Amazon EC2实例部署Tomcat Docker镜像后公网IP访问返回404错误

404问题核心根因

从Docker Hub官方拉取的tomcat:latest镜像中,Tomcat 9.0.65及以上版本、Tomcat 10/11最新版默认不预置根路径示例Web应用。容器启动后8080端口正常监听,但webapps目录下没有匹配根路径的资源文件,因此访问http://35.171.195.176:8080/会直接返回HTTP 404。
可以先排除网络类配置问题:如果是EC2安全组未放行8080端口、Docker端口映射配置错误,访问时会触发连接超时,不会收到Tomcat返回的404响应。

分步修复方案
  • 前置校验
    在EC2实例终端执行curl http://localhost:8080,如果返回的404内容和外部公网访问结果完全一致,说明请求已经正常抵达Tomcat服务,可直接执行后续修复操作。
  • 方案1:需要访问Tomcat默认欢迎页/示例程序
    终止并删除原有启动的空容器,换用内置完整示例应用的稳定版本镜像启动:
    docker rm -f tomcat-server
    docker run --name tomcat-server -p 8080:8080 tomcat:9.0
    
    该版本镜像会自动部署根路径欢迎页、内置示例程序,启动完成后通过公网IP访问即可看到正常的Tomcat首页。
  • 方案2:仅需消除无资源404、无示例页面需求
    保留原有运行的tomcat:latest容器,在容器内手动初始化空的根Web应用目录:
    docker exec -it tomcat-server bash -c "mkdir -p /usr/local/tomcat/webapps/ROOT"
    
    Tomcat会自动扫描webapps目录的新增内容,无需重启容器,执行完成后访问根路径不会再返回404。
  • 方案3:部署自有业务Web应用
    启动容器时通过Docker卷挂载,将本地存放war包/静态资源的目录映射到Tomcat的webapps路径下:
    docker run --name tomcat-server -p 8080:8080 -v /本地资源目录路径:/usr/local/tomcat/webapps tomcat:latest
    
    只要挂载目录下存在对应根路径的资源文件,即可正常对外提供访问。
常见误判提示
  • Tomcat默认管理控制台的访问路径为/manager/html,该应用包没有随最新官方镜像预置,直接访问也会返回404,需要单独配置用户权限、上传对应应用包才能正常访问。

内容的提问来源于stack exchange,提问作者Mykhailo Skliar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.24 01:54:05