Docker 安装 tomcat
Docker 安装 tomcat
主要有两种方式来安装tomcat镜像,一种是在dockerhub中下载,另一种方式是先自己制作tomcat镜像,然后在在docker中运行tomcat镜像,本文为了简单处理采用dockerhub下载的tomcat镜像。
1、安装步骤
1.1、搜索tomcat镜像
复制$ docker search tomcat
通过上述命令查找tomcat镜像,选择Apache的tomcat,一般搜索到的结果,Apache tomcat是排在第一个的。而后可以进行安装。
1.2、安装tomcat镜像
$ docker pull tomcat
1.3、查看安装的tomcat镜像
$ docker images
该命令回列出已经安装的tomcat镜像。
1.4、启动tomcat容器
$ docker run --name tomcat-test -d -p 8080:8080 tomcat
说明:
-d 表示后台运行,并返回后台容器,
-p 表示端口号,前一个8080是指我们访问tomcat时的端口号,
后一个8080是tomcat启动的一个容器在docker中运行的端口号, 指定端口号为了更明确的访问tomcat。
2、解决404
启动之后浏览器输入 192.168.44.130:8080 发现页面输出404,这就有点纳闷了,在其他人的博客中找到了解决方法。
2.1、进入 tomcat 容器查看文件
# 进入tomcat,0be1774e1e5e为容器ID
docker exec -it 0be1774e1e5e /bin/bash
# 以列表形式查看文件
ls -l
2.2、webapps、webapps.dist 文件夹
查看 webapps 文件夹,发现文件夹里没有东西,查看 webapps.dist 文件夹,发现文件在里面,因此删除原有的 webapps 文件夹, webapps.dist 文件夹重命名为 webapps。
# 进入webapps
cd webapps
# 发现没有文件
ls -l
# 进入webapps.dist
cd webapps.dist
# 存在examples文件
ls -l
# 删除webapps
rm -r webapps
# 重命名
mv webapps.dist webapp
# 退出
exit
再次访问 192.168.44.130:8080 ,页面访问成功。
3、容器文件映射到本地目录(挂载)
点击了解挂载
拷贝容器内 tomcat 配置文件和日志到本地准备映射
docker cp tomcat-test:/usr/local/tomcat/conf /root/tomcat/conf
docker cp tomcat-test:/usr/local/tomcat/logs /root/tomcat/logs
docker cp tomcat-test:/usr/local/tomcat/webapps /root/tomcat/webapps
停止tomcat,并删除容器
docker stop tomcat-test
docker rm tomcat-test
创建并运行tomcat容器
docker run -d -p 8081:8080 --name tomcat-test1 -v /root/tomcat/webapps:/usr/local/tomcat/webapps -v /root/tomcat/conf:/usr/local/tomcat/conf -v /root/tomcat/logs:/usr/local/tomcat/logs tomcat
此时如果浏览器访问404, 则需要再次进入 tomcat 容器:
docker exec -it tomcat-test1 /bin/bash
删除 webapps 文件夹,并重命名 webapps.dist 为 webapps:
rm -r webapps
mv webapps.dist webapps
访问浏览器如下:
参考资料:
https://www.cnblogs.com/xiaozhang666/p/12382114.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
2020-07-08 SpringBoot配置详解