【Docker实战】使用Docker部署Tomcat

news2024/11/25 4:52:26

【Docker实战】使用Docker部署Tomcat

  • 一、Tomcat介绍
    • 1. Tomcat简介
    • 2. Tomcat特点
    • 3. Tomcat容器部署的优点
    • 4. Tomcat的配置文件
  • 二、检查本地环境
  • 三、检查本地Docker环境
    • 1. 检查本地Docker服务
    • 2. 检查Docker版本
  • 四、搜索docker hub中的tomcat镜像
  • 五、下载tomcat镜像
  • 六、创建Tomcat容器
    • 1.创建数据目录
    • 2.运行Tomcat容器
    • 3.查看Tomcat容器状态
  • 七、访问Tomcat网页
    • 1.编辑网页内容
    • 2.访问tomcat网页

在这里插入图片描述

一、Tomcat介绍

1. Tomcat简介

Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。

2. Tomcat特点

Tomcat是一种开源的、轻量级的应用服务器,它实现了Java Servlet和JavaServer Pages规范。

其特点包括:

  • 轻量级:Tomcat是一个轻量级的Web容器,在内存占用和启动时间上都比较快。
  • 易用性:Tomcat的使用和部署非常简单,它提供了方便的Web界面和命令行工具来管理和配置Web应用程序。
  • 易扩展性:Tomcat支持多种插件和扩展,可以方便地集成其他的Web应用程序框架和技术。
  • 跨平台性:Tomcat是基于Java开发的,可以在多种操作系统平台上运行。
  • 安全性:Tomcat提供了丰富的安全管理和访问控制机制,可以确保Web应用程序的安全性和可靠性。

3. Tomcat容器部署的优点

Tomcat用容器部署的优点包括:

  • 简化部署:通过容器化,可以将Tomcat的应用程序、配置文件和依赖项打包到一个docker容器中,从而简化了部署流程。

  • 轻量级:容器是轻量级的,只包含运行应用程序所需的组件,这可以减少资源消耗,提高效率。

  • 灵活性:容器可以随时启动、停止和移动,可以轻松地进行扩展和缩减,这为应对流量峰值和成本节约提供了便利。

  • 可靠性:容器提供隔离和安全性,可以防止应用程序之间的相互影响,从而提高可靠性和安全性。

  • 云友好性:容器可以轻松地在云端部署,与DevOps实践和自动化部署相适应,提高了应用程序管理的效率。

4. Tomcat的配置文件

Tomcat的配置文件包括以下几个:

  • server.xml:Tomcat服务器的主配置文件,定义了Tomcat的全局设置,包括端口、连接器、虚拟主机等。

  • web.xml:Web应用的配置文件,定义了Web应用的基本设置和参数。

  • context.xml:Web应用的上下文配置文件,定义了Web应用的上下文作用域的参数和设置。

  • catalina.properties:Tomcat的全局属性文件,定义了Tomcat的全局属性值。

  • logging.properties:Tomcat的日志配置文件,定义了Tomcat的日志记录器和级别。

  • tomcat-users.xml:Tomcat的用户认证和授权配置文件,定义了Tomcat管理界面的账户和权限。

  • realm.properties:Tomcat的安全领域配置文件,定义了Tomcat安全领域的用户名和密码及其角色。

  • jaspic-providers.xml:Tomcat的JASPIC(Java Authentication Service Provider Interface for Containers)配置文件,定义了JASPIC提供者的配置信息。

二、检查本地环境

检查本地操作系统版本:

[root@node ~]# cat /etc/os-release 
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"

CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"

三、检查本地Docker环境

1. 检查本地Docker服务

检查本地Docker服务状态,确保Docker服务正常运行。

[root@node ~]# systemctl status docker
● docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
   Active: active (running) since Mon 2022-10-31 03:28:51 CST; 2 days ago
     Docs: https://docs.docker.com
 Main PID: 11884 (dockerd)
    Tasks: 108
   Memory: 2.7G

2. 检查Docker版本

检查Docker版本

[root@server001 ~]# docker version
Client: Docker Engine - Community
 Version:           20.10.22
 API version:       1.41
 Go version:        go1.18.9
 Git commit:        3a2c30b
 Built:             Thu Dec 15 22:30:24 2022
 OS/Arch:           linux/amd64
 Context:           default
 Experimental:      true

Server: Docker Engine - Community
 Engine:
  Version:          20.10.22
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.18.9
  Git commit:       42c8b31
  Built:            Thu Dec 15 22:28:33 2022
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.6.14
  GitCommit:        9ba4b250366a5ddde94bb7c9d1def331423aa323
 runc:
  Version:          1.1.4
  GitCommit:        v1.1.4-0-g5fd4c4d
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

四、搜索docker hub中的tomcat镜像

在docker官方的镜像仓库docker hub中搜索tomcat的容器镜像,
这里直接选择的容器镜像为:tomcat:8.5.46-jdk8-openjdk

[root@node ~]# docker search tomcat
NAME                                           DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
tomcat                                         Apache Tomcat is an open source implementati…   3426      [OK]       
tomee                                          Apache TomEE is an all-Apache Java EE certif…   98        [OK]       
bitnami/tomcat                                 Bitnami Tomcat Docker Image                     47                   [OK]
arm32v7/tomcat                                 Apache Tomcat is an open source implementati…   11                   
arm64v8/tomcat                                 Apache Tomcat is an open source implementati…   8                    
rightctrl/tomcat                               CentOS , Oracle Java, tomcat application ssl…   7                    [OK]
amd64/tomcat                                   Apache Tomcat is an open source implementati…   5                    
jelastic/tomcat                                An image of the Tomcat Java application serv…   4                    
tomcat2111/pisignage-server                    PiSignage Server                                3                    [OK]
oobsri/tomcat8                                 Testing CI Jobs with different names.           2                    
cfje/tomcat-resource                           Tomcat Concourse Resource                       2                    
chenyufeng/tomcat-centos                       tomcat基于centos6的镜像                              1                    [OK]
ppc64le/tomcat                                 Apache Tomcat is an open source implementati…   1                    
appsvc/tomcat                                                                                  1                    
tomcat0823/auto1                                                                               0                    
tomcatengineering/pg_backup_rotated            Clone of martianrock/pg_backup_rotated but w…   0                    
tomcat2111/papercut-mf                         PaperCut MF Application Server                  0                    
softwareplant/tomcat                           Tomcat images for jira-cloud testing            0                    [OK]
misolims/miso-base                             MySQL 5.7 Database and Tomcat 8 Server neede…   0                    
s390x/tomcat                                   Apache Tomcat is an open source implementati…   0                    
semoss/docker-tomcat                           Tomcat, Java, Maven, and Git on top of debian   0                    [OK]
wnprcehr/tomcat                                                                                0                    
secoresearch/tomcat-varnish                    Tomcat and Varnish 5.0                          0                    [OK]
tomcat2111/bitbucket-pipelines-elasticsearch   Elasticsearch for Bitbucket's Pipelines         0                    
tomcat2111/phpredisadmin                       This is a Docker image for phpredisadmin        0                    [OK]

五、下载tomcat镜像

在docker hub中拉取tomcat:8.5.46-jdk8-openjdk镜像。

[root@node tomcat]# docker pull tomcat:8.5.46-jdk8-openjdk
8.5.46-jdk8-openjdk: Pulling from library/tomcat
092586df9206: Pull complete 
ef599477fae0: Pull complete 
4530c6472b5d: Pull complete 
d34d61487075: Pull complete 
272f46008219: Pull complete 
12ff6ccfe7a6: Pull complete 
f26b99e1adb1: Pull complete 
21bec9c8ea28: Pull complete 
b8a32f28e27c: Pull complete 
94fdd0ba0430: Pull complete 
Digest: sha256:bb4ceffaf5aa2eba6c3ee0db46d863c8b23b263cb547dec0942e757598fd0c24
Status: Downloaded newer image for tomcat:8.5.46-jdk8-openjdk
docker.io/library/tomcat:8.5.46-jdk8-openjdk



六、创建Tomcat容器

1.创建数据目录

创建容器挂载目录

[root@node ~]# mkdir -p /data/tomcat/data 
[root@node ~]# chmod -R 777 /data/tomcat/

2.运行Tomcat容器

使用docker-cli快速创建tomcat容器。

[root@node tomcat]# docker run -d  --name my_web --restart always -p 7090:8080 -v /data/tomcat/data:/usr/local/tomcat/webapps/ROOT/   tomcat:8.5.46-jdk8-openjdk
26674fb4896f49f26282b3fe21b484d40017d13fd7cc474db5badf57bdb4a865

3.查看Tomcat容器状态

检查tomcat容器的运行状态,确保容器的正常启动。

[root@node data]# docker ps
CONTAINER ID   IMAGE                                                   COMMAND                  CREATED              STATUS                  PORTS                                             NAMES
26674fb4896f   tomcat:8.5.46-jdk8-openjdk                              "catalina.sh run"        About a minute ago   Up About a minute       0.0.0.0:7090->8080/tcp, :::7090->8080/tcp         my_web


七、访问Tomcat网页

1.编辑网页内容

编辑一个测试index.html网页文件。


[root@node tomcat]# cd data/
[root@node data]# echo hello > index.html

2.访问tomcat网页

访问地址:http://192.168.3.166:7090
可以正常访问到网页测试内容时,说明tomcat容器已经正常运行了。

image.png

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

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

相关文章

chatgpt赋能Python-pythona的三次方

Python 的三次方:探索 Python 强大的数学计算能力 Python 是一种高级编程语言,被广泛应用于数据分析、机器学习、人工智能等领域。除此之外,Python 还拥有强大的数学计算能力,其中包括 Python 的三次方计算功能。在本文中&#x…

AI人工智能标记数据的技术:类型、方法、质量控制、应用

AI人工智能 标记数据 在人工智能(Artificial Intelligence,简称AI)领域中,标记数据是非常重要的一环。它是指对原始数据进行标记和注释,以便机器学习算法可以理解和利用这些数据。标记数据可以提高机器学习模型的准确…

实战【云原生】--- Kubernetes集群

K8S集群负载均衡层防火墙 实例 一、kubeadm 部署 K8S 集群架构1、关闭所有节点的防火墙 核心防护 iptables swap交换2、修改主机名3、调整内核参数 二、安装Docker1、所有节点安装docker2、所有节点配置k8s源3、所有节点安装kubeadm,kubelet和kubectl 三、部署k8s集…

2023/5/21总结

因为之前高中学过一点点的html。虽然不是很多&#xff0c;但是有一点点基础&#xff0c;看了一些关于html的知识点&#xff0c;算是复习了&#xff0c;如果后面忘记打算再去查。 html是超文本标记语言&#xff0c;通常由<></>构成&#xff0c;当然也有单标记&…

chatgpt赋能Python-python5__2

Python中整除运算符 // 的用法和重要性 在Python中&#xff0c;整除运算符 // 有着广泛的应用&#xff0c;特别是在数据分析、科学计算、金融量化、游戏开发等领域中&#xff0c;它是很重要的基础运算符。 什么是整除运算符 //&#xff1f; 整除运算符 // 是Python中的一种二…

chatgpt赋能Python-pythonbmi

Python计算BMI - 计算和判断你的身体状况 BMI&#xff0c;即Body Mass Index&#xff0c;中文翻译为“身体质量指数”&#xff0c;是目前世界上公认的反映体重是否正常的最权威的指标之一。 计算BMI可以帮助我们判断自己的身体状况&#xff0c;是如今非常流行的健康指标之一。…

【iOS】SDWebImage源码学习--未完

SDWebImage的主要功能及相关知识点 SDWebImage是一个流行的第三方库&#xff0c;用于在iOS和macOS应用程序中异步下载和缓存图像。它提供了一种简单而强大的方式来处理网络图像加载和缓存&#xff0c;具有以下主要功能&#xff1a; 异步下载&#xff1a;SDWebImage使用多线程…

MyBatis中动态SQL的使用和注意事项说明

文章目录 0、前言1、if2、where3、trim4、choose-when-otherwise5、foreach应用场景1&#xff1a; 通过数组实现批量删除应用场景2&#xff1a; 通过list集合实现批量添加 6、include抽取公共SQL片段 0、前言 MyBatis框架动态SQL技术是根据特定的条件拼接SQL语句的功能&#x…

【计算机图形学】曲线和曲面

模块5 曲线和曲面 一 实验目的 编写曲线和曲面的算法 二 实验内容 1&#xff1a;绘制Bezier曲线&#xff0c;并采用自行设计输入和交互修改数据点的方式。 实验结果如下图所示&#xff1a; 第一步&#xff1a;输入特征多边形的顶点个数&#xff0c;并按照顺序输入顶点的坐…

《心静的力量》读书笔记

让心静下来&#xff0c;战胜一切忧虑 于我们每个人而言&#xff0c;最重要的就是不要去看远方模糊不清的事&#xff0c;而要做手边真实清楚的事。 明天的重担&#xff0c;加上昨天的重担&#xff0c;会成为今天的最大障碍&#xff0c;要把未来同过去一样紧紧地关在门外……未…

将MetaHuman的身体替换为虚幻商城模型的身体

一、准备好MetaHuman模型和虚幻商城模型 1.准备好MetaHuman模型,参考这篇文章 虚幻商城模型转MetaHuman制作MetaHuman并导入UE,同时复制一个MetaHuman模型 2.下载虚幻商城的原始模型,并导入UE 二、将虚幻商城模型的头去掉 1.打开虚幻商城的模型,找到分段 2.在右边点击…

chatgpt赋能Python-pythonapp开发

PythonApp开发&#xff1a;为什么选择Python实现&#xff1f; Python是当今最流行的编程语言之一&#xff0c;尤其在Web应用开发和数据分析领域更是大有作为。本文将探讨Python在App开发领域中的表现&#xff0c;为什么Python可以成为您理想的选择&#xff1f; 1. 简单易学 …

深度学习基础入门篇[8]::计算机视觉与卷积神经网络、卷积模型CNN综述、池化讲解、CNN参数计算

【深度学习入门到进阶】必看系列&#xff0c;含激活函数、优化策略、损失函数、模型调优、归一化算法、卷积模型、序列模型、预训练模型、对抗神经网络等 专栏详细介绍&#xff1a;【深度学习入门到进阶】必看系列&#xff0c;含激活函数、优化策略、损失函数、模型调优、归一化…

leetcode--优先队列

2163,删除元素后的最小差值 给你一个下标从 0 开始的整数数组 nums &#xff0c;它包含 3 * n 个元素。 你可以从 nums 中删除 恰好 n 个元素&#xff0c;剩下的 2 * n 个元素将会被分成两个 相同大小 的部分。 前面 n 个元素属于第一部分&#xff0c;它们的和记为 sumfirst …

RabbitMQ如何保证顺序性

1. RabbitMQ消息顺序性说明 顺序性&#xff1a; 消息的顺序性是指消费者消费到消息和发送者发布的消息的顺序是一致的 举个例子&#xff0c;不考虑消息重复的情况下&#xff0c;如果生产者发布的消息分别为msg1、msg2、msg3 那么消费者必然也是按照 msg1、msg2、msg3 的顺序来…

【数据结构】--- 博主拍了拍你并向你扔了一“堆”二叉树(堆的概念+结构+代码实现)

文章目录 前言&#x1f31f;一、二叉树的顺序结构及实现&#xff1a;&#x1f31f;二、堆的概念及结构&#xff1a;&#x1f31f;三、堆的代码实现&#xff1a;&#x1f30f;3.1 堆的创建&#xff1a;&#x1f30f;3.2 堆的结构&#xff1a;&#x1f30f;3.3 初始化&#xff1a…

Spring Security 如何实现身份认证和授权?

Spring Security 是一个开源的安全框架&#xff0c;提供了基于权限的访问控制、身份认证、安全性事件发布等功能。在 Spring Boot 应用中使用 Spring Security 可以非常方便地实现用户身份认证和授权。 Spring Security 实现身份认证的主要方式是使用认证过滤器链&#xff0c;…

C语言入门级小游戏——扫雷

文章目录 游戏思路游戏文件的创建游戏菜单棋盘的创建初始化棋盘打印棋盘 布置雷排查雷game.h —— 游戏函数的声明game.c —— 游戏函数的实现test.c —— 游戏的测试 今天我们写一个小游戏——扫雷来增加我们对编程的兴趣 希望这篇文章对友友们有帮助! 游戏思路 游戏文件的创…

Linux:iptables防火墙(SNAT和DNAT)

Linux&#xff1a;iptables防火墙 一、SNAT策略及应用1.1 SNAT原理1.2 SNAT应用 二、DNAT策略及应用2.1 DNAT原理2.2 DNAT应用 一、SNAT策略及应用 1.1 SNAT原理 SNAT 应用环境&#xff1a;局域网主机共享单个公网IP地址接入Internet&#xff08;私有不能在Internet中正常路由…

MySQL数据库笔记——进阶篇

文章目录 存储引擎MySQL体系结构存储引擎简介InnoDB介绍MyISAMMemory 存储引擎的选择小结 索引概述索引结构概述BtreeBTreeHash 存储引擎 MySQL体系结构 连接层&#xff1a; 最上层是一些客户端和链接服务&#xff0c;主要完成一些类似于连接处理、授权认证、及相关的安全方案…