一、使用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 "%r" %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正常散会!!!