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正常散会!!!

相关推荐
人鱼传说17 小时前
docker desktop是一个好东西
运维·docker·容器
小章UPUP19 小时前
Kubernetes (K8s) 与 Podman 的比较
容器·kubernetes·podman
忆~遂愿19 小时前
CANN metadef 核心解析:计算图原型定义、算子元数据抽象与异构系统互操作机制
docker·容器
说实话起个名字真难啊19 小时前
用docker来安装openclaw
docker·ai·容器
恬静的小魔龙20 小时前
【群晖Nas】群晖Nas中实现SVN Server功能、Docker/ContainerManager等
docker·svn·容器
Zfox_21 小时前
CANN Catlass 算子模板库深度解析:高性能 GEMM 融合计算、Cube Unit Tiling 机制与编程范式实践
docker·云原生·容器·eureka
春日见21 小时前
如何创建一个PR
运维·开发语言·windows·git·docker·容器
DARLING Zero two♡21 小时前
告别 Docker 命令行!Portainer+cpolar 让容器管理从局域网走向公网
运维·docker·容器
vx1_Biye_Design1 天前
基于Spring Boot+Vue的学生管理系统设计与实现-计算机毕业设计源码46223
java·vue.js·spring boot·spring·eclipse·tomcat·maven
liu****1 天前
2.深入浅出理解虚拟化与容器化(含Docker实操全解析)
运维·c++·docker·容器·虚拟化技术