我这里使用的是9.0.50,直接通过 docker pull tomcat 拉取的image,那么docker默认会从hub.docker.com中拉取名称叫做tomcat的最新的image即tomcat:latest的版本,我通过 docker run -d --name tomcat01 -p 8081:8080 tomcat 以后台的方式启动tomcat之后,通过centos机器的8081端口访问tomcat的首页,出现404错误。
为什么访问8080端口可以出现tomcat的首页:
对于tomcat而言,通过访问启动tomcat机器的8080端口能够出现tomcat的首页,原因是访问了tomcat中webapps/ROOT/index.jsp或者webapps/ROOT/index.html文件,那么也就是tomcat容器中必须存在这两个文件之一才不会404。
解决方案:
a、首先进入tomcat容器
docker exec -it tomcat-container的名称 /bin/bash
其中 tomcat-container的名称 换成自己创建的tomcat容器的名称,比如我的是tomcat01
b、查看是否存在index.html或者index.jsp文件
ls webapps
发现整个webapps目录下都是空的,和我们的猜想一样,那么这两个文件在什么地方呢
我们发现和webapps同级的有一个叫做webapps.dist的文件夹
c、查看webapps.dist文件夹内容
ls webapps.dist/
发现该文件夹下面有我们想要的文件
d、将webapps.dist文件夹重命名为webapps,因为centos中并没有重命名的命令,那么我们可以将webapps文件夹删除,然后将webapps.dist文件夹移动为webapps
删除文件夹命令:
rmdir webapps 或者 rm -r webapps
rmdir只能删除空文件夹,rm -r 删除文件夹及该文件夹下的子文件夹
将webapps.dist文件夹移动为webapps:
mv webapps.dist/ webapps
mv移动命令:如果目标文件夹存在,那么会将被移动的文件夹放在目标文件夹下面;如果目标文件夹不存在那么会创建目标文件夹同时将被移动的文件夹下面的文件及文件夹放入到目标文件夹下面,那么这里因为之前删除过webapps,webapps文件夹不存在,所以这里的mv命令,会将webapps文件夹创建,同时将webapps.dist下面的文件及文件夹移动到webapps文件夹下面。
e、再次访问centos的8081端口,可以进入tomcat的首页