029--docker安装tomcat

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 [email protected]    #作者
        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

你可能感兴趣的:(029--docker安装tomcat)