docker部署web项目(用tomcat)

时间:2022-01-24 21:49:08
  • 创建tomcat容器   -d指后台运行   --name : 起别名    -p 映射的端口
docker run tomcat --name mytomcat -p 8080:8080 -d

  • 进入容器内部  容器内部有一些设置文件 只能通过这种方式进入
交互式的进入tomcat容器。“docker exec”命令表示在运行中的容器中开启一个新的进程。
docker exec -it mytomcat /bin/bash

查看到webapps路径为:/usr/local/tomcat/webapps。等下需要把war包拷贝到该路径下。然后tomcat会把war包自动解压

  • 上传war包到容器   需要在开启一个终端 (比较方便)
docker中也可以使用cp命令完成和宿主机的文件拷贝。
docker cp   /xxxx.war   mytomcat:/usr/local/tomcat/webapps
  • 重启容器 (正常应该重启,我没有重启直接就被tomcat加载了)
  • docker restart mytomcat
重启容器,然后就可以发现上传的war包已经自动解压部署了。进入webapps目录即可查看。

  • 访问应用
       要注意访问的路径可能和自己本机测试跑的路径不同。如果你本身是一个多module项目,本地测试跑起来的url路径与目前单独war包部署跑起来的路径肯定是不同的。  如:正常在本地测试时  192.168.0.1:8080/直接就是根目录 而部署之后需要192.168.0.1:8080/项目名/才可以访问正常路径,一些静态文件也加载不上来 (巨坑啊)

    解决办法:(正常不用docker部署 也需要这样配置)

还是进入容器内部 ls一下 发现有个  conf

LICENSE  NOTICE  RELEASE-NOTES    RUNNING.txt  bin  conf    include  lib  logs  native-jni-lib  temp  webapps  work

进入 conf 有个server.xml文件  我们需要在这里加一些参数 (重点是容器内部不支持 vi和vim这种命令只能查看)

水平有限 我把这个文件拷贝到主机 根目录

docker cp mytomcat:/usr/local/tomcat/conf/server.xml /

然后用window改的server.xml文件

在配置文件最后面加上<Context path="" docBase="/usr/local/tomcat/webapps/mw-project"  debug="0" reloadable="true"></Context>

只需要把mw-project 改成你的项目名  (为什么不加后缀war,因为war解压好就是这个文件夹了,到webapps/下可以看到)

docker部署web项目(用tomcat)

最后配置完成我们需要覆盖 容器内部的server.xml

docker cp /server.xml mytomcat:/usr/local/tomcat/conf/server.xml

这样就把配置文件修改好了 重新运行  docker restart mytomcat  完美!