使用docker部署tomcat|tomcat基础使用第二篇

使用docker部署tomcat|tomcat基础使用第二篇

1. review

  1. tomcat服务器学习:https://www.cnblogs.com/jiading/p/11974935.html
  2. docker学习:https://www.cnblogs.com/jiading/p/12131441.html

2. tomcat使用补充

  1. tomcat服务器的文件位置在哪里

    今天猛然间发现之前配置的tomcat居然是随机启动的,也就是说它一直在默默运行着2333,幸好内存占用不大。不过这也从侧面说明了使用docker的优点:将应用进行封装,一旦关闭的话就是真的关闭了,对本机不会产生任何影响

    anyway,访问localhost:8080,在tomcat的welcome页面中能够查询到它的位置在/var/lib/tomcat9/

  2. webapps里的ROOT项目是什么

    ROOT项目是tomcat默认启动的项目,也就是输入<域名>:<端口号>默认访问的项目,当然也可以删掉,删除之后按<域名>:<端口号>输入就没有显示了(如果是直接用war包部署而不使用server.xml的方式部署的话)

  3. 如何访问使用war包部署的项目

    <域名>:<端口号>/<项目路径名>

3.使用docker部署tomcat

由于是第一次独立使用docker,还是绕了一些弯子的

  1. 拉取tomcat镜像:docker pull tomcat
  2. 运行容器:docker run -d --name tomcatfortravel -p 8081:8080 -v /home/jiading/Desktop/travelWeb:/usr/local/tomcat/webapps -v /home/jiading/Desktop/travelLog:/usr/local/tomcat/logs tomcat

    下面我解释一下参数:

    1. run:运行容器
    2. -d:以守护式方式启动(也就是后台运行).当然也不是必须要以守护方式运行,也可以-it前台交互式运行,但是tomcat比较特殊是运行之后自动就启动tomcat服务了,shell是被占用的,所以-it前台运行也不能在shell中交互(如果需要交互,可以-d后台运行之后再输入docker exec <容器ID> /bin/bash)
    3. -p:端口映射,如果你电脑本地没有运行tomcat等服务器软件并且你只打算开一个docker容器的话可以不加
    4. -v:数据卷,这个路径是我电脑的,所以你不能直接拷贝运行上面的命令。我这样做的好处就是1.可以直接看运行日志 2. 将war包放到桌面的travelWeb文件夹下就可以在容器中自动部署了,操作方便

    这里有一点要注意,docker run命令中,镜像名要写在所有参数之后(就像我上面所做的那样),否则可能会报错,例如starting container process caused "exec: \"-d\": executable file not found in $PATH": unknown.

  3. 之后,将war包拷贝到上面数据卷映射的本地文件夹下,就可以在本地浏览器上输入localhost:8081/<项目名>运行web项目了

docker的好处就是能同时使用多个容器来模拟多个服务器

原文地址:https://www.cnblogs.com/jiading/p/12153123.html

时间: 2024-10-04 19:11:11

使用docker部署tomcat|tomcat基础使用第二篇的相关文章

使用docker部署nginx+tomcat架构(2):访问mysql数据库

上一篇完成了通过docker部署nginx+tomcat的基础软件架构,但是距离一个真正可用的软件架构还差得很远.其中最重要的一点是缺少数据库这个角色的存在,那么本篇就来完善这一点. 废话少说,直接进入正题. 首先拉取mysql镜像: docker pull mysql:5.7 创建本地mysql目录: mkdir -p ~/mysql/data ~/mysql/conf ~/mysql/logschmod -R 777 ~/mysql/logs 在mysql/conf目录下创建配置文件my.c

使用docker部署nginx+tomcat架构(3):使用docker-compose简化部署操作

经历了之前的两篇,我们已经大体上了解了docker部署容器的过程. 使用docker部署nginx+tomcat架构 使用docker部署nginx+tomcat架构(2):访问mysql数据库 不过,整个部署过程中需要手动输入很多的docker命令,稍显繁琐并且容易出错.那么有没有一种相对简洁优雅的方式来完成这些部署工作呢?答案是有的,docker-compose(一下简称“compose”)正是为此而生. 关于docker-compose(了解更多:https://docs.docker.c

EnjoyingSoft之Mule ESB基础系列第二篇:Mule ESB基本概念

目录 1. 使用Anypoint Studio开发 2. Mule ESB Application Structure - Mule ESB应用程序结构 3. Mule ESB Application整体构造 4. Mule ESB构造元素 - Flow 5. Mule ESB构造元素 - Connector 6. Mule ESB构造元素 - Processor Mule ESB在众多开源的ESB中处于领先者的地位,MuleSoft公司也作为独角兽,2017年在纽交所上市.我们作为MuleSo

Docker 部署 nginx + tomcat

简介 在生产环境中,很多企业会经常使用nginx + tomcat 架构,nginx作为负载均衡器,反向代理,tomcat作为节点服务器.在docker容器中也可以使用这种架构.对这种架构感兴趣的可以参考博客:https://blog.51cto.com/13760351/2161850 操作环境 备注:实验中已关闭防火墙,打好企业使用的war包 部署过程: 一.安装nginx镜像 可参考博客 https://blog.51cto.com/13760351/2469063 二.部署war包项目

Android基础学习第二篇—Activity

写在前面的话: 1. 最近在自学Android,也是边看书边写一些Demo,由于知识点越来越多,脑子越来越记不清楚,所以打算写成读书笔记,供以后查看,也算是把自己学到所理解的东西写出来,献丑,如有不对的地方,希望大家给与指正. 2. 由于类似于读书笔记,可能格式神马的会比较随(hen)意(chou),大家看着受不了,可以使劲吐槽. *************************************我只是分割线***************************************

Node.js基础:第二篇

目录 第一章:Node.js模块化开发 1.1-JavaScript开发弊端 1.2-模块化开发的好处 1.3-Node.js中模块化开发规范 1.4-模块内成员的导入和导出 1.5-导出的第二种方式 第二章:系统模块 2.1-什么是系统模块 2.2-系统模块fs文件操作 2.3-相对路径和绝对路径 2.4-系统模块path 路径操作 第三章:第三方模块 3.1-什么是第三方模块 3.2-获取第三方模块 3.3-第三方模块 nodemon 3.4-第三方模块 nrm 3.5-第三方模块 Gulp

Python 基础【第二篇】python操作模式

一.交互模式 1 #python 2 3 Python 2.6.6 (r266:84292, Jan 22 2014, 09:42:36) 4 5 [GCC 4.4.7 20120313 (Red Hat 4.4.7-4)] on linux2 6 7 Type "help", "copyright", "credits" or "license" for more information. 8 9 >>>

nginx基础学习第二篇:nginx内置变量的使用

ngx_http_core模块提供的内置变量有很多,常见的有 $uri,用来获取当前请求的uri,不含请求参数. $request_uri,用来获取请求最原始的uri,包含请求参数,且未解码. $request,获取请求方法(GET或者POST).$request_uri.HTTP协议版本. $args,获取当前请求的参数串(即请求中问号后面的部分,如果有的话),未解码的原始值.$args变量是可以改变的,利用set指令即可 set $args a=1&b=2.需要注意的是,绝大部分的内置变量都

python基础知识第二篇

基本数据类型 数字                  整形 int                             ---int                            将字符串转换为数字 num="123" n1=int(num) print(n1) print(type(a)) 查看是什么类型的 num=10 print(type(num)) .               ----bit_length 当前数字的二进制,表示至少用几位来二进制 num=10