Docker 容器启动 Tomcat 访问出现404 问题解决

1. 首先是我自己的环境

  • Centos 6.8,Centos 7 同样适用
  • Docker version 1.7.1, build 786b29d
    • docker --version
  • Tomcat :TOMCAT_VERSION=8.5.51
    • docker inspect tomcat

2. 问题描述

docker run -it -p 8081:8080 tomcat

  • 正常启动tomcat之后,通过虚拟机浏览器访问 localhost:8081 后,出现404,访问不到
  • 控制台也没有任何错误信息
    Docker 容器启动 Tomcat 访问出现404 问题解决_第1张图片

3. 解决

  • 出现404原因就是,tomcat无法找到webapps下的文件
  • 访问docker容器tomcat的工作空间后发现,webapps文件夹下为空,而还有一个文件夹是:webapps.dist,我们需要的东西在这个文件夹下。
    Docker 容器启动 Tomcat 访问出现404 问题解决_第2张图片
  • 这个时候需要将webapps.dist下的文件全部复制到webapps目录下
docker exec -it xxxxx /bin/bash

cp -r /usr/local/tomcat/webapps.dist/* /usr/local/tomcat/webapps/

  • 复制完成之后,再访问 localhost:8081 ,就已经正常了,如果还是显示404,先清空一下浏览器缓存

4. 补充

  • 此时,如果在一起启动另外一个tomcat,还是会遇到这个问题。
  • 这个时候就需要我们自己制作一个自定义Tomcat容器
a,m属性可以随便写,没有要求,一个是作者,一个是容器的描述
[CONTAINER ID]: 就是要修改的当前正在运行的tomcat的id
[要创建的镜像名]: 后面跟着就是REPOSITORY,新的容器名称,可以自定义
[TAG]: 新的镜像版本号,必须有,可自定义,如1.1

docker commit -a="xxx" -m="updatetomcat" [CONTAINER ID]  [要创建的镜像名]:[TAG]
----

docker images 
如果此时能看到自己提交的容器,就代表创建成功
----

启动创建的新镜像
docker run -d -p xxxx:8080 [创建的镜像名]:[TAG]

你可能感兴趣的:(Docker)