使用docker部署tomcat

之前介绍过如何在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

猜你喜欢

转载自blog.csdn.net/i826056899/article/details/147031213
今日推荐