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

相关推荐
虎头金猫1 天前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
分布式存储与RustFS1 天前
MinIO 官方 Docker 镜像被移除:依赖它的项目该怎么办
docker·云原生·devops·对象存储·minio·分布式存储
玉&心2 天前
通过Arthas在线诊断K8S中的内存及JVM等使用情况
docker·k8s·arthas
xing-xing2 天前
Docker容器中Nginx站点根目录网页配置访问
nginx·docker
赵文宇(温玉)2 天前
CoreDNS的hosts插件的缺行配置导致k8s集群异常
容器·kubernetes·rancher
guo_wen_qiang2 天前
上传本地镜像到harbor中
docker·容器·持续部署
羑悻的小杀马特2 天前
Dockerfile 全景指南:从入门编写dockerfile到生产环境镜像优化实战,一步步带你从啃透制作指令到镜像制作落地!
docker·dockerfile·镜像制作
BianHuanShiZhe2 天前
docker常见命令
docker
需要8262 天前
JVM 内存区域与对象创建:一次 GC 从哪来
java·jvm·spring boot·spring·servlet·tomcat
正经教主2 天前
【FDE系列】阶段2:Day 43:Docker Compose — 多容器一键编排
人工智能·docker·fde