【Docker】解决Docker创建Tomcat容器实例后访问Tomcat主页时报HTTP状态404-未找到的错
- IT业界
- 2025-08-21 06:09:01

专栏精选文章 《Docker是什么?Docker从介绍到Linux安装图文详细教程》《30条Docker常用命令图文举例总结》《Docker如何构建自己的镜像?从镜像构建到推送远程镜像仓库图文教程》《Docker多个容器和宿主机之间如何进行数据同步和数据共享?容器数据卷从介绍到常用操作图文教程》
背景
我在使用 Docker 拉取官方最新版的 Tomcat 镜像,创建该镜像的容器实例后,正想着访问 Tomcat 小猫咪主页时,却报了 404 错误。明明我已经开放了 Tomcat 的 8080 端口了,难道还有别的大坑吗?
本期目录 专栏精选文章背景解决方案一:防火墙解决方案二:Tomcat版本太新解决方案三:安装Tomcat 8
解决方案一:防火墙
很多刚使用 Linux 和 Docker 的新手小白最有可能遇见的情况就是宿主机的防火墙没关闭或者没有开放 8080 端口。
如果你是新手,很懒,我建议你直接永久关闭宿主机的防火墙。依次执行下列命令。
$ systemctl stop firewalld $ systemctl disable firewalld $ firewall-cmd --reload如果你在企业,可不能关闭防火墙,只需要放开 Tomcat 的端口 8080 :
$ firewall-cmd --zone=public --remove-port=8080/tcp --permanent查看宿主机已经放开的端口:
$ firewall-cmd --zone=public --list-ports 解决方案二:Tomcat版本太新如果你是直接执行下面这条官网上的拉取 Tomcat 镜像的命令:
$ docker pull tomcat那么你就是拉取了最新的 Tomcat 10.0 版本,最新版的 Tomcat 10.0 在首页上的访问是不一样的。
【解决办法】
首先以前台交互式进入 Tomcat 10.0 镜像的容器 t1 中。
$ docker exec -it t1 /bin/bash查看当前目录。
$ ls -l所有网页资源都应该在 webapps 目录下,进入看看。
$ cd webapps $ ls -l发现是空的,这就解释了为什么没办法访问 Tomcat 小猫首页了。新版的 Tomcat 的猫首页放在了 webapps.dist 里,我们只需要把 webapps 目录删除,再把 webapps.dist 重命名为 webapps 即可。
$ rm -rf webapps $ mv webapps.dist webapps再次在浏览器中访问:
http://192.168.168.101:8080成功访问 Tomcat 首页。此时也可以发现 Tomcat 版本是 10.0 ,算是比较高的版本了,一般现在企业用的还都是 8 或 9 。
解决方案三:安装Tomcat 8正如上面所演示的,最新的 Tomcat 10 在主页上的改动对新手是不太友好的。在企业中绝大部分都还在用 Tomcat 8.0 或 9.0 ,这已经够用了。因此,我们删除最新版的 Tomcat 容器和镜像,转而下载带有 JDK 8 的 Tomcat 8.0 版本镜像。
删除 Tomcat 10.0 的容器:
$ docker rm -f t1删除 Tomcat 10.0 的镜像:
$ docker rmi -f tomcat:latest拉取带有 JDK 8 的 Tomcat 8.0 版本镜像:
$ docker pull billygoo/tomcat8-jdk8使用该镜像创建 Tomcat 容器实例 t8 。
$ docker run -d -p 8080:8080 --name t8 billygoo/tomcat8-jdk8:latest在浏览器中访问:
http://192.168.168.101:8080直接就可以访问 Tomcat 的主页,不需要做任何修改。可以看到 Tomcat 版本是 8.0.53 ,比最新版的 Tomcat 10.0 对新手更友好。
希望本篇博文对你有帮助。
【Docker】解决Docker创建Tomcat容器实例后访问Tomcat主页时报HTTP状态404-未找到的错由讯客互联IT业界栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“【Docker】解决Docker创建Tomcat容器实例后访问Tomcat主页时报HTTP状态404-未找到的错”
上一篇
JDBC连接数据库详解~