Linux操作系统Docker部署Tomcat教程

简介: Linux操作系统Docker部署Tomcat教程

Docker部署Tomcat的详细的步骤

首先通过docker拉取tomcat的镜像文件

docker pull tomcat:latest

# 查看镜像文件
docker images

运行结果:
image.png

通过docker的命令运行tomcat容器

docker run --name tomcat8080 -p 8080:8080 tomcat

运行结果:
image.png

补充:如果想运行多个tomcat,只需要修改端口号即可

docker run --name tomcat8080 -p 8080:8080 tomcat
docker run --name tomcat8081 -p 8081:8080 tomcat

如果要进行目录的挂载,可以查看下面的命令,大致过程就是先创建自己的目录,然后使用docker cp 将tomcat对应的目录结构下的文件复制到自己文件目录结构下

#先创建自己想要被挂载的目录结构
mkdir /mydata/tomcat
# 下面的三个操作是使用docker命令将tomcat目录结构下的三个文件复制移动到自己创建的目录结构下,方便后续的挂载
docker cp tomcat:/usr/local/tomcat/webapps.dist /mydata/tomcat
docker cp tomcat:/usr/local/tomcat/conf /mydata/tomcat
docker cp tomcat:/usr/local/tomcat/logs /mydata/tomcat

先停止tomcat并移除tomcat

docker stop tomcat8080
docker rm tomcat8080

重新进行目录结构的挂载

docker run --name tomcat8080 -p 8080:8080 -v {
   
   mathJaxContainer[0]}PWD/logs:/usr/local/tomcat/logs -v $PWD/conf:/usr/local/tomcat/conf -d tomcat8080

# 补充节点小知识
# 1.$pwd是当前所处的位置
# 2.标识容器的俩个方法(俩个名称)  (1).容器名称 (2).运行后给定的镜像ID号

遇到的问题以及解决的方案

接下来通过地址访问我们的tomcat接口地址,发现出现了问题,遇到了404,资源找不到的问题,是什么原因呢?我们该怎么解决呢?具体原因以及解决方案请看下面的内容

遇到问题:访问地址,出现HTTP Status 404的错误

地址栏中输入地址访问tomcat,但是出现404错误
image.png

出现的原因&解决问题的方案:

进入webapps文件夹,发现里面是空的(tomcat默认的欢迎页面实际上放在的路径应该是:webapps/ROOT/index.jsp),同一个目录下还有个webapps.dist的文件,进入才发现原本应该在webapps文件中的文件都在webapps.dist文件中。所以将webapps.dist重命名为webapps即可解决问题,或者在webapps文件夹下创建xxx.html文件也可以解决这个问题;

# 重命名一下文件
mv webapps webappsnull
mv webapps.dist webapps 

# 重新启动容器
docker restart tomcat8080

运行结果:
image.png

再次访问地址,成功访问到了tomcat的资源目录
image.png

相关实践学习
CentOS 8迁移Anolis OS 8
Anolis OS 8在做出差异性开发同时,在生态上和依赖管理上保持跟CentOS 8.x兼容,本文为您介绍如何通过AOMS迁移工具实现CentOS 8.x到Anolis OS 8的迁移。
相关文章
|
4天前
|
运维 自然语言处理 Ubuntu
OS Copilot-操作系统智能助手-Linux新手小白的福音
OS Copilot 是阿里云推出的一款操作系统智能助手,专为Linux新手设计,支持自然语言问答、辅助命令执行和系统运维调优等功能。通过简单的命令行操作,用户可以快速获取所需信息并执行任务,极大提升了Linux系统的使用效率。安装步骤简单,只需在阿里云服务器上运行几条命令即可完成部署。使用过程中,OS Copilot不仅能帮助查找命令,还能处理文件和复杂场景,显著节省了查找资料的时间。体验中发现,部分输出格式和偶尔出现的英文提示有待优化,但整体非常实用,特别适合Linux初学者。
44 10
|
3天前
|
消息中间件 监控 RocketMQ
Docker部署RocketMQ5.2.0集群
本文详细介绍了如何使用Docker和Docker Compose部署RocketMQ 5.2.0集群。通过创建配置文件、启动集群和验证容器状态,您可以快速搭建起一个RocketMQ集群环境。希望本文能够帮助您更好地理解和应用RocketMQ,提高消息中间件的部署和管理效率。
144 91
|
4天前
|
存储 NoSQL Redis
Docker 部署 Redis
在使用 Docker 部署 Redis 时,为实现数据持久化,需正确挂载容器内的数据目录到宿主机。推荐命令如下: ``` docker run -d --name redis -v /mnt/data/redis:/data -p 6379:6379 redis ``` 该命令将宿主机的 `/mnt/data/redis` 目录挂载到容器的 `/data` 目录,确保 Redis 数据持久化。此路径更通用,适合大多数场景。避免使用不匹配的挂载路径,如 `/var/lib/redis` 或 `/mnt/data/redis` 到非默认目录,以防止数据无法正确持久化。
|
19天前
|
存储 关系型数据库 MySQL
美团面试:MySQL为什么 不用 Docker部署?
45岁老架构师尼恩在读者交流群中分享了关于“MySQL为什么不推荐使用Docker部署”的深入分析。通过系统化的梳理,尼恩帮助读者理解为何大型MySQL数据库通常不使用Docker部署,主要涉及性能、管理复杂度和稳定性等方面的考量。文章详细解释了有状态容器的特点、Docker的资源隔离问题以及磁盘IO性能损耗,并提供了小型MySQL使用Docker的最佳实践。此外,尼恩还介绍了Share Nothing架构的优势及其应用场景,强调了配置管理和数据持久化的挑战。最后,尼恩建议读者参考《尼恩Java面试宝典PDF》以提升技术能力,更好地应对面试中的难题。
|
12天前
|
JavaScript 前端开发 Docker
如何通过pm2以cluster模式多进程部署next.js(包括docker下的部署)
通过这些步骤,可以确保您的Next.js应用在多核服务器上高效运行,并且在Docker环境中实现高效的容器化管理。
71 44
|
3天前
|
Shell Linux
【linux】Shell脚本中basename和dirname的详细用法教程
本文详细介绍了Linux Shell脚本中 `basename`和 `dirname`命令的用法,包括去除路径信息、去除后缀、批量处理文件名和路径等。同时,通过文件备份和日志文件分离的实践应用,展示了这两个命令在实际脚本中的应用场景。希望本文能帮助您更好地理解和应用 `basename`和 `dirname`命令,提高Shell脚本编写的效率和灵活性。
55 32
|
7天前
|
Unix Linux C语言
【Linux】 Linux makefile 教程
本文详细介绍了 Linux 环境下 Makefile 的基本结构、语法和使用方法,并通过一个简单的 C++ 项目示例演示了 Makefile 的实际应用。Makefile 是一个强大而灵活的工具,通过合理配置,可以极大地简化项目的编译和管理过程,提高开发效率。希望本文能帮助您更好地理解和应用 Makefile,在实际项目中高效管理代码的编译和构建。
37 20
|
6天前
|
Unix Linux C语言
【Linux】 Linux makefile 教程
本文详细介绍了 Linux 环境下 Makefile 的基本结构、语法和使用方法,并通过一个简单的 C++ 项目示例演示了 Makefile 的实际应用。Makefile 是一个强大而灵活的工具,通过合理配置,可以极大地简化项目的编译和管理过程,提高开发效率。希望本文能帮助您更好地理解和应用 Makefile,在实际项目中高效管理代码的编译和构建。
39 16
|
22天前
|
Linux Docker 容器
Linux 中停止 Docker 服务报 warning 导致无法彻底停止问题如何解决?
在 Linux 系统中,停止 Docker 服务时遇到警告无法彻底停止的问题,可以通过系统管理工具停止服务、强制终止相关进程、检查系统资源和依赖关系、以及重置 Docker 环境来解决。通过以上步骤,能够有效地排查和解决 Docker 服务停止不彻底的问题,确保系统的稳定运行。
99 19
|
23天前
|
Ubuntu Linux 网络安全
Linux磁盘挂接教程
Linux磁盘挂接教程
59 14