docker(一)----使用docker安装运行tomcat

一、使用docker安装运行tomcat

1、 下载tomcat镜像

bash 复制代码
docker pull swr.cn-east-2.myhuaweicloud.com/library/tomcat:8

2、查看tomcat镜像

bash 复制代码
docker images

3、后台运行tomcat镜像

3.1创建宿主机目录结构

bash 复制代码
sudo mkdir -p /opt/tomcat/myTomcat1/{webapps,logs,conf}

3.2生产环境进阶配置(建议)
一个更健壮的生产级命令,可能包含资源限制和重启策略:

bash 复制代码
docker run -d \
  --name myTomcat1 \
  --restart=unless-stopped \
  -p 8080:8080 \
  -m 2g \
  --cpus=1 \
  -v /opt/tomcat/myTomcat1/webapps:/usr/local/tomcat/webapps \
  -v /opt/tomcat/myTomcat1/logs:/usr/local/tomcat/logs \
  -v /opt/tomcat/myTomcat1/conf:/usr/local/tomcat/conf \
  -e TZ=Asia/Shanghai \
  tomcat:8

指定镜像id进行运行

bash 复制代码
[root@k8s-single-node tomcat]# docker run -d   --name myTomcat1   --restart=unless-stopped   -p 8080:8080   -m 2g   --cpus=1   -v /opt/tomcat/myTomcat1/webapps:/usr/local/tomcat/webapps   -v /opt/tomcat/myTomcat1/logs:/usr/local/tomcat/logs   -v /opt/tomcat/myTomcat1/conf:/usr/local/tomcat/conf   -e TZ=Asia/Shanghai   5808f01b11bf
db5c761436f860872b1dfd12b3f213d635741cceee7e08369a81c8b81a3405d8

新增参数解释:

  • --restart=unless-stopped:自动重启策略。当Docker服务重启或容器意外退出时,自动启动容器,确保服务高可用。

  • -m 2g --cpus=1:资源限制。限制容器最多使用 2GB 内存和 1 个CPU核心,防止单个容器耗尽主机资源。

  • -e TZ=Asia/Shanghai:设置容器时区,保证日志和应用时间正确。

二、 容器启动后,您可以通过以下命令进行管理:

查看运行状态:

bash 复制代码
docker ps | grep myTomcat1

没有正常启动我们看一下日志
查看实时日志:

bash 复制代码
docker logs -f myTomcat1

查看一下8080端口是否被占用

bash 复制代码
netstat -tlnp |grep 8080

最后发现tomcat的核心配置文件有问题

bash 复制代码
/opt/tomcat/myTomcat1/conf #在此目录中创建文件
bash 复制代码
touch server.xml
bash 复制代码
#使用
vim

<?xml version="1.0" encoding="UTF-8"?>
<Server port="8005" shutdown="SHUTDOWN">
  <Listener className="org.apache.catalina.startup.VersionLoggerListener" />
  <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
  <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
  <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />

  <GlobalNamingResources>
    <Resource name="UserDatabase" auth="Container"
              type="org.apache.catalina.UserDatabase"
              description="User database"
              factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
              pathname="conf/tomcat-users.xml" />
  </GlobalNamingResources>

  <Service name="Catalina">
    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

    <Engine name="Catalina" defaultHost="localhost">
      <Realm className="org.apache.catalina.realm.LockOutRealm">
        <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
               resourceName="UserDatabase"/>
      </Realm>

      <Host name="localhost" appBase="webapps"
            unpackWARs="true" autoDeploy="true">

        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log" suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />
      </Host>
    </Engine>
  </Service>
</Server>

先在

最后重新部署tomcat

bash 复制代码
docker run -d   --name myTomcat1   --restart=unless-stopped   -p 8080:8080   -m 2g   --cpus=1   -v /opt/tomcat/myTomcat1/webapps:/usr/local/tomcat/webapps   -v /opt/tomcat/myTomcat1/logs:/usr/local/tomcat/logs   -v /opt/tomcat/myTomcat1/conf/server.xml:/usr/local/tomcat/conf/server.xml   -e TZ=Asia/Shanghai   5808f01b11bf

curl正常散会!!!

相关推荐
德育处主任Pro2 小时前
『NAS』在群晖部署OCR文字识别工具-TrWebOCR
docker·ocr·群晖·nas
Curvatureflight2 小时前
Docker容器化部署实战指南:从入门到生产环境
运维·docker·容器
又是进步的一天3 小时前
Kubernetes 证书体系与 OpenSSL 命令学习
学习·容器·kubernetes
风流倜傥唐伯虎3 小时前
docker常用命令
docker·容器
ShiLiu_mtx3 小时前
k8s - 1
云原生·容器·kubernetes
峰顶听歌的鲸鱼3 小时前
Kubernetes核心概述
运维·笔记·云原生·容器·kubernetes·云计算
南梦浅3 小时前
CentOS 7 安装 Docker 避坑指南:解决源不稳定与插件校验失败问题
docker
好奇心害死薛猫3 小时前
飞牛NAS_docker_easytier
网络·docker
Leo July3 小时前
Docker全解析:从入门到企业级实战
运维·docker·容器