首页 > 其他分享 >【Docker实战】使用Docker部署Tomcat

【Docker实战】使用Docker部署Tomcat

时间:2023-08-20 11:01:25浏览次数:30  
标签:实战 容器 Tomcat tomcat docker root Docker

(【Docker实战】使用Docker部署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

标签:实战,容器,Tomcat,tomcat,docker,root,Docker
From: https://blog.51cto.com/u_14664141/7159618

相关文章

  • 桌面版vscode用免费的微软4核8G服务器做远程开发(编译运行都在云上,还能自由创建docker
    欢迎访问我的GitHub这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos本篇概览在前文《浏览器上写代码,4核8G微软服务器免费用,Codespaces真香》中,咱们以一个Java程序员视角体验了GitHub的Codespaces产品的beta版,简单来说有以下两大收获:网......
  • Caddy 入门实战(3)--Caddyfile 介绍
    Caddyfile 是一种方便用户使用的Caddy配置格式。这是大多数人最喜欢使用Caddy的方式,因为它易于编写、易于理解,且能满足绝大部分的使用场景。本文主要介绍Caddyfile的相关概念。1、Caddyfile结构可选的全局选项块必须放在文件的头部否则,Caddyfile的首行总是要提供......
  • Docker容器操作
    1dockerexec这个命令dockerexec是对运行状态的容器进行执行一个命令,exec就是execute的简写,单词就是执行的意思。例如我们基本上容器都是说linux环境下的容器,在linux下我们经常做的事情就是要执行各种shell命令,所以这个命令用到最多的场景是执行一个容器下的bash程序,然后输入一个......
  • # yyds干货盘点 # Pandas实战——灵活使用pandas基础知识轻松处理不规则数据
    大家好,我是皮皮。一、前言前几天在Python最强王者群【wen】问了一个pandas数据合并处理的问题,一起来看看吧。他的原始数据如下所示:然后预期的结果如下所示:二、实现过程这里【瑜亮老师】给了一个指导如下:原始数据中包含所有所需的信息,但是因为源系统导出的格式问题,有些数据被分配到......
  • 搭建小实战和Sequential的使用
    搭建小实战和Sequential的使用模型搭建以CIFAR10model结构为例搭建网络CIFAR10model结构torch.nn.Flatten是PyTorch中的一个模块,用于将多维的输入张量转换为一维的输出张量。它可以被用作神经网络模型中的一层,用于将输入张量展平后作为全连接层的输入。比如输入张量的形......
  • erlang实战手册(1)
    目录变量atom逻辑运算变量变量大写开头,但实际是不能改变,只能赋值一次。X=11.112>Y=X.113>Y.114>Yxxx=Y.115>Yxxx5>.116>Yxxx=44.**exceptionerror:nomatchofrighthandsidevalue44atom原子,可理解为常量。7>A=a1.a18>B=a2.a29>A.a110>......
  • abp-vnext-pro 实战(八,聚合根的写法,客户M:N地址)
    参考数据字典模块的写法///<summary>///地址///</summary>publicclassAddress:FullAuditedAggregateRoot<Guid>,IMultiTenant{publicGuid?TenantId{get;protectedset;}///<summary>///公司名///</summary>p......
  • Kafka+Fink 实战+工具类
    LogServiceImpl@Service@Slf4jpublicclassLogServiceImplimplementsLogService{privatestaticfinalStringTOPIC_NAME="ods_link_visit_topic";@AutowiredprivateKafkaTemplatekafkaTemplate;/***记录日志**......
  • Docker rootless部署应用
    一、创建普通用户并赋予sudo权限免密切换rootuseraddairechomcwlWS93Kjn0BCL9|passwdair--stdincd/etcchmod600sudoersvisudoers ###################################################################################Samethingwithoutapassword#%whee......
  • 解决虚拟上docker 启动ES访问不成功
    可能原因是ES太耗内存了,我发现启动了ES容器后,像dockerps这种命令都很慢而且查看日志发现进行垃圾回收出现错误。所以判断可能是因为ES太耗内存。采用以下命令启动容器,应该可以解决。dockerrun-id--nameelasticsearch-d--restart=always-p9200:9200-p9300:9300-v/usr......