Docker安装Tomcat(3种方法)
第一种:直接拷贝然后重启服务(但是容器停止war包消失)
docker cp /apps/enzoism/tomcat/HelloWorld.war 1c1f4f70ea6e:/usr/local/tomcat/webapps
docker restart 1c1f4f70ea6e
第二种:直接挂载目录
docker run -d -p 8080:8080 tomcat -v /apps/enzoism/tomcat/HelloWorld.war:/usr/local/tomcat/webapps/HelloWorld.war
第二种延伸:静态文件直接挂载(纯JS,没有jsp页面)
docker run -d -p 8083:8080 -v /apps/project/web-server/springboot-layui-console2:/usr/local/tomcat/webapps/ROOT registry.cn-hangzhou.aliyuncs.com/acs-sample/tomcat
第三种:Dockfile
1、直接搜索安装tomcat
docker search tomcat
2、运行Tomcat
docker run -d -it -p 8082:8080 tomcat
3、访问tomcat
http://192.168.221.128:8082/
4、至此tomcat已经安装完毕
5、部署war包
5.1、将war上传到linux:
/apps/enzoism/tomcat/HelloWorld.war
5.2、执行/查看容器comcat中的地址
docker exec -it 1c1f4f70ea6e /bin/bash
5.3、把war包丢到宿主机 在丢到container里面丢到tomcat/webapps
docker cp /apps/enzoism/tomcat/HelloWorld.war 1c1f4f70ea6e:/usr/local/tomcat/webapps
5.4、启动tomcat 或者重启 docker restart 【容器id】
docker run -d -it -p 8082:8080 tomcat
docker restart 1c1f4f70ea6e
5.5、访问网址: http://192.168.221.128:8082/HelloWorld/index.html
5.6、上述执行有个弊端就是 容器重启后项目就会不再了,下面是方式2启动 以挂载的方式启动
docker run -d -p 8080:8080 tomcat -v /apps/enzoism/tomcat/HelloWorld.war:/usr/local/tomcat/webapps/HelloWorld.war
5.7、至此,war已经部署完毕
5.8、多个项目,可以多启动一个tomcat实例
docker run -d -it -p 8083:8080 tomcat
docker cp /apps/enzoism/tomcat/HelloWorld.war dca706c49ebc:/usr/local/tomcat/webapps
docker restart dca706c49ebc
5.9、可以结合nginx进行负载(项目复杂,比如微服务可以用K8S进行管理)
5.10、以上适合小项目,经常修改的项目,官网建议使用Dockfile
- 编辑Dockfile
vim Dockerfile
from tomcat:latest #你的 tomcat的镜像
MAINTAINER XXX@qq.com #作者
COPY /apps/enzoism/tomcat/HelloWorld.war /usr/local/tomcat/webapps #放置到tomcat的webapps目录下
- 重新生成镜像,而且可以生成不同的版本
docker build -t tomcat-helloworld:v1 . #v1是每次生成的版本号
docker run -p 8080:8080 tomcat-helloworld:v1
6、参考网址
- tomcat部署:https://blog.csdn.net/qq_32351227/article/details/78673591