【Docker实战】使用Docker部署Tomcat
作者:mmseoamin日期:2023-12-25

【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网页

            【Docker实战】使用Docker部署Tomcat,在这里插入图片描述,第1张

            一、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容器已经正常运行了。

                  【Docker实战】使用Docker部署Tomcat,image.png,第2张