一起学docker系列之十docker安装tomcat实践

目录

  • 前言
  • 1 安装tomcat的步骤
    • 步骤 1: 查找并拉取 Tomcat 镜像
    • 步骤 2: 运行 Tomcat 容器
    • 步骤 3: 管理 Tomcat 容器
    • 步骤 4: 访问 Tomcat 首页
  • 2 解决访问首页的404访问不到的问题
    • 2.1 Tomcat 10 的默认设置问题
    • 2.2 端口映射或防火墙问题
  • 3 推荐使用 Tomcat 8.5 版本
      • 总结

前言

当安装 Tomcat 时使用 Docker 是一种便捷的方式。这种方法允许用户轻松地创建、运行和管理 Tomcat 容器,而无需在本地系统上安装和配置 Tomcat。下面是如何详细安装 Tomcat 使用 Docker 的步骤及解释。
在这里插入图片描述

1 安装tomcat的步骤

步骤 1: 查找并拉取 Tomcat 镜像

首先,在 Docker Hub 上搜索适合您需求的 Tomcat 镜像。例如,您可能想选择特定版本的 Tomcat。使用以下命令来搜索并拉取 Tomcat 镜像:

docker search tomcat
docker pull tomcat:{version}

步骤 2: 运行 Tomcat 容器

使用以下命令在容器中运行 Tomcat:

docker run -d -p 8080:8080 --name my_tomcat tomcat:{version}

解释:

  • -d:以后台模式运行容器。
  • -p 8080:8080:将容器的 8080 端口映射到主机的 8080 端口。
  • --name my_tomcat:为容器指定一个名称。
  • tomcat:{version}:选择的 Tomcat 镜像及版本。

步骤 3: 管理 Tomcat 容器

使用以下命令查看正在运行的容器:

docker ps

如果需要进入容器的命令行界面,可以使用以下命令:

docker exec -it my_tomcat /bin/bash

步骤 4: 访问 Tomcat 首页

在浏览器中输入 localhost:8080 来访问 Tomcat 的首页。

2 解决访问首页的404访问不到的问题

2.1 Tomcat 10 的默认设置问题

有时候,在访问 Tomcat 10 的首页时可能会遇到 404 错误。可以通过以下步骤解决:
在这里插入图片描述

  1. 进入 Tomcat 容器的 bash:

    docker exec -it my_tomcat /bin/bash
    
  2. 删除默认的 webapps 目录并将 webapps.dist 重命名为 webapps

    rm -rf webapps
    mv webapps.dist webapps
    

2.2 端口映射或防火墙问题

确保端口映射正确,主机防火墙没有阻止对 Tomcat 的访问。

3 推荐使用 Tomcat 8.5 版本

您可以选择使用 Tomcat 8.5 版本。拉取并运行 Tomcat 8.5 的方法如下:

docker pull billygoo/tomcat8-jdk8
docker run -d -p 8080:8080 --name my_tomcat8 billygoo/tomcat8-jdk8

使用容器数据卷运行 Tomcat 8

对于 Tomcat 8,可以使用容器数据卷来确保数据持久化。使用 -v 参数来指定数据卷的挂载路径。

docker run -d -p 8080:8080 --name my_tomcat8 -v /host/path:/container/path billygoo/tomcat8-jdk8

在上述命令中,/host/path 是宿主机上的路径,/container/path 是容器中 Tomcat 数据的路径。

总结

使用 Docker 安装和管理 Tomcat 可以简化配置和部署流程。这个过程使得在容器中运行 Tomcat 变得轻松且可控,让您专注于应用程序的开发和管理。通过这个指南,您可以轻松开始并根据需要进行自定义配置。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/171558.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【华为OD题库-037】跳房子2-java

题目 跳房子,也叫跳飞机,是一种世界性的儿童游戏游戏。参与者需要分多个回合按顺序跳到第1格直到房子的最后一格,然后获得一次选房子的机会,直到所有房子被选完,房子最多的人获胜。 跳房子的过程中,如果有踩…

【Docker】从零开始:11.Harbor搭建企业镜像仓库

【Docker】从零开始:11.Harbor搭建企业镜像仓库 1. Harbor介绍2. 软硬件要求(1). 硬件要求(2). 软件要求 3.Harbor优势4.Harbor的误区5.Harbor的几种安装方式6.在线安装(1).安装composer(2).配置内核参数,开启路由转发(3).下载安装包并解压(4).创建并修改配置文件(5…

python+pytest接口自动化(1)-接口测试基础

一般我们所说的接口即API,那什么又是API呢,百度给的定义如下: API(Application Programming Interface,应用程序接口)是一些预先定义的接口(如函数、HTTP接口),或指软件系…

3款免费的语音视频转文本AI神器

最近有很多粉丝让我出一期关于语音转文本的免费AI神器,毕竟这类工具在学习和工作中经常会用到,那今天就给大家安排。 我亲测了好几款软件之后,最终评选留下了三款 剪映hugging face飞书妙记 接下来一一给大家讲解 1.剪映 剪映其实是一款视…

引用、动态内存分配、函数、结构体

引用 定义和初始化 **数据类型 &引用名 目标名;**引用和目标共用同一片空间(相当于对一片空间取别名)。 引用的底层实现:数据类型 * const p; ------> 常指针 int const *p; -----> 修饰 *p const int *p; ----->…

stm32实现0.96oled图片显示,菜单功能

stm32实现0.96oled图片显示,菜单功能 功能展示简介代码介绍oled.coled.holedfont.h(字库文件)main函数 代码思路讲解 本期内容,我们将学习0.96寸oled的进阶使用,展示图片,实现菜单切换等功能,关…

QT visual stdio加载动态库报错126问题

报错126是找不到指定的模块 QT 查看构建目录,将依赖的动态库放到该目录下即可成功 visual stdio将依赖的动态库放到运行目录 在vs中使用导出类的动态库时,不但需要将对应的.dll放到对应的目录下,还需要将该动态库对应的.lib添加到如下配置才…

【SAS Planet 下载地图瓦片】

SAS Planet是一位俄罗斯爱好者创建的的开源应用,该应用可以浏览与下载主流网络地图,包括Google地图、Google地球、Bing地图、Esri 地图、Yandex地图等,支持100多图源。 安装包下载地址:https://www.sasgis.org/download/ github…

337. 打家劫舍III (二叉树)

题目 题解 # Definition for a binary tree node. # class TreeNode: # def __init__(self, val0, leftNone, rightNone): # self.val val # self.left left # self.right right class Solution:def rob(self, root: Optional[TreeNode]) ->…

指针的进阶

重中之重: 目录 1.字符指针: 2.指针数组 3.数组指针 4.数组参数、指针参数 5.函数指针 1.字符指针: 一般实现: int main() {char ch w;char *pc &ch;*pc w;return 0; } 二班实现: int main() {const c…

什么是闭包和作用域链?

1. 什么是闭包 闭包指的是那些引用了另一个函数作用域中变量的函数,通常是在嵌套函数中实现的。 举个栗子,createCounter 接受一个参数 n,然后返回一个匿名函数,这个匿名函数是闭包,它可以访问外部函数 createCounte…

智能优化算法应用:基于鲸鱼算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于鲸鱼算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于鲸鱼算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.鲸鱼算法4.实验参数设定5.算法结果6.参考文献7.MATLAB…

Nginx常见的中间件漏洞

目录 1、Nginx文件名逻辑漏洞 2、Nginx解析漏洞 3、Nginx越权读取缓存漏洞 这里需要的漏洞环境可以看:Nginx 配置错误导致的漏洞-CSDN博客 1、Nginx文件名逻辑漏洞 该漏洞利用条件有两个: Nginx 0.8.41 ~ 1.4.3 / 1.5.0 ~ 1.5.7 php-fpm.conf中的s…

百度 Comate 终于支持 IntelliJ IDEA 了

大家好,我是伍六七。 对于一直关注 AI 编程的阿七来说,编程助手绝对是必不可少的,除了 GitHub Copilot 之外,国内百度的 Comate 一直是我关注的重点。 但是之前,Comate 还支持 VS code,并不支持 IntelliJ…

mybatis的使用,mybatis的实现原理,mybatis的优缺点,MyBatis缓存,MyBatis运行的原理,MyBatis的编写方式

文章目录 MyBatis简介结构图Mybatis缓存(一级缓存、二级缓存)MyBatis是什么?mybatis的实现原理JDBC编程有哪些不足之处,MyBatis是如何解决这些问题的?Mybatis优缺点优点缺点映射关系 MyBatis的解析和运行原理MyBatis的…

【单片机学习笔记】STC8H1K08参考手册学习笔记

STC8H1K08参考手册学习笔记 STC8H系列芯片STC8H1K08开发环境串口烧录 STC8H系列芯片 STC8H 系列单片机是不需要外部晶振和外部复位的单片机,是以超强抗干扰/超低价/高速/低功耗为目标的 8051 单片机,在相同的工作频率下,STC8H 系列单片机比传统的 8051约快12 倍速度…

数组题目:645. 错误的集合、 697. 数组的度、 448. 找到所有数组中消失的数字、442. 数组中重复的数据 、41. 缺失的第一个正数

645. 错误的集合 思路: 我们定义一个数组cnt,记录每个数出现的次数。然后我们遍历数组,从1开始,如果cnt[i] 0 那就说明这个是错误的数,如果 cnt[i] 2,那就说明是重复的数。 代码: class So…

RabbitMQ之消费者可靠性

文章目录 前言一、消费者确认机制二、失败重试机制三、失败处理策略四、业务幂等性唯一消息ID业务判断 五、兜底方案总结 前言 当RabbitMQ向消费者投递消息以后,需要知道消费者的处理状态如何。因为消息投递给消费者并不代表就一定被正确消费了,可能出现…

3DMAX平滑布尔插件超级布尔工具使用教程

3dMax平滑布尔插件SmoothBoolean用于在ProBoolean网格之间创建平滑过渡的3dMax插件。再也不需要花几个小时来清理用布尔切割创建的混乱拓扑了。如果你只是想让你的三维模型在渲染图上看起来很棒,或者你需要为游戏烘焙一些东西,那么你就不必浪费时间来建模…

Kotlin学习——kt中的类,数据类 枚举类 密封类,以及对象

Kotlin 是一门现代但已成熟的编程语言,旨在让开发人员更幸福快乐。 它简洁、安全、可与 Java 及其他语言互操作,并提供了多种方式在多个平台间复用代码,以实现高效编程。 https://play.kotlinlang.org/byExample/01_introduction/02_Functio…