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

相关推荐
仙柒4156 小时前
Docker存储原理
运维·docker·容器
快乐的哈士奇9 小时前
LangFuse 自托管实战:选型理由、Docker 部署与常用配置全解析
运维·人工智能·docker·容器
MandalaO_O10 小时前
MyBatis:核心概念 + 环境搭建 + CRUD
java·tomcat·mybatis
weixin_4492900110 小时前
Docker + MySQL 在 Windows 11 上的本地安装部署文档
mysql·docker·容器
Ysn071910 小时前
中文乱码:在 Docker 容器中设置中文语言环境
运维·python·docker·容器
米高梅狮子11 小时前
01.CentOS-Stream-8-packstack安装OpenStack
linux·云原生·容器·kubernetes·centos·自动化·openstack
zxd02031111 小时前
EFK(Elasticsearch + Fluentd + Kibana) 日志收集系统
运维·docker·jenkins
终端行者11 小时前
Jenkins Pipeline 企业级用法 参数化构建+Ansible发布---上
docker·ansible·jenkins·cicd
亚空间仓鼠13 小时前
Docker容器化高可用架构部署方案(十三)
docker·容器·架构
噢,我明白了13 小时前
MyBatis-Plus的引入和配置
java·tomcat·mybatis