之前介绍过如何在windows下部署tomcat环境:如何在 Windows 上安装与配置 Tomcat-CSDN博客文章浏览阅读1.2k次,点赞21次,收藏13次。在 Windows 上安装与配置 Tomcat新手教程https://blog.csdn.net/i826056899/article/details/146882501?spm=1011.2415.3001.5331
还介绍了如何在linux下部署tomcat:https://blog.csdn.net/i826056899/article/details/147031139?spm=1011.2415.3001.5331https://blog.csdn.net/i826056899/article/details/147031139?spm=1011.2415.3001.5331
这两个方法虽然很传统,但使用docker的话,其实更简单,不是简单一点,是直接简单一大截。下面介绍如何使用docker部署tomcat。
1. 前置准备
你得先确保以下环境准备好了:
-
一台装了 Linux 的机器(Ubuntu、CentOS 都行)
-
安装好 Docker(不会的看这里:Docker 官方安装教程)
-
网络畅通,能拉镜像
验证 Docker 是否安装成功:
docker --version
如果能看到版本号,比如 Docker version 24.0.5, build ced0996
,就说明没问题。
2. 拉取官方 Tomcat 镜像
Tomcat 在 Docker Hub 上有官方镜像,直接拉下来就能用。
docker pull tomcat:9.0
你也可以拉最新版本,比如:
docker pull tomcat:latest
下载速度慢?可以配置国内镜像源,比如阿里云的:
sudo mkdir -p /etc/docker
cat <<EOF | sudo tee /etc/docker/daemon.json
{
"registry-mirrors": ["https://your-mirror.aliyuncs.com"]
}
EOF
sudo systemctl restart docker
3. 启动容器跑起来
现在我们来启动 Tomcat 容器:
docker run -d \
--name my-tomcat \
-p 8080:8080 \
tomcat:9.0
来解释一下这条命令:
-
-d
:后台运行 -
--name my-tomcat
:给容器起个名字 -
-p 8080:8080
:把容器的 8080 端口映射到主机的 8080 -
tomcat:9.0
:使用这个镜像
启动之后,访问浏览器输入:
http://你的服务器IP:8080
看到熟悉的 Tomcat 小猫就说明成功了!
4. 部署你的 Web 应用(war 包)
默认情况下,Tomcat 镜像里 webapps
目录是空的,连 manager 都没有。你得手动挂载 war 包,或者自己构建镜像。
方法一:挂载 war 包
假设你的 war 包放在 /home/user/myapp.war
,可以这样运行:
docker run -d \
--name my-tomcat \
-p 8080:8080 \
-v /home/user/myapp.war:/usr/local/tomcat/webapps/myapp.war \
tomcat:9.0
容器启动后会自动解压这个 war 包,几秒钟之后就能访问:
http://你的服务器IP:8080/myapp
方法二:自己构建镜像(推荐)
你也可以用 Dockerfile 自己封装一个包含你项目的 Tomcat 镜像,方便部署:
FROM tomcat:9.0
COPY myapp.war /usr/local/tomcat/webapps/
构建镜像:
docker build -t my-tomcat-app .
docker run -d -p 8080:8080 my-tomcat-app
5. 日志查看和管理
看日志:
docker logs -f my-tomcat
进入容器:
docker exec -it my-tomcat bash
停止容器:
docker stop my-tomcat
删除容器:
docker rm my-tomcat
6. 小提示:持久化日志 + 自动重启
如果你想持久化日志,可以挂载日志目录:
-v /home/user/tomcat-logs:/usr/local/tomcat/logs
加上自动重启:
--restart=always
完整命令可以变成这样:
docker run -d \
--name my-tomcat \
-p 8080:8080 \
-v /home/user/myapp.war:/usr/local/tomcat/webapps/myapp.war \
-v /home/user/tomcat-logs:/usr/local/tomcat/logs \
--restart=always \
tomcat:9.0
7. 总结
用了 Docker 之后,部署 Tomcat 不再是复制配置、下载 zip 包、解压、改配置这么麻烦的一堆事,而是简单几条命令就能跑起来,甚至可以打包成镜像一键部署。
如果你是:
-
Java 后端开发
-
想快速测试 war 包
-
想部署到服务器不动 nginx 或 Apache