Docker实战 - 将Web项目打成war包部署到tomcat容器里运行

1. 实战概述

  • 本实战通过 Docker 容器化部署 SimonShop 电商项目:基于自定义 Tomcat 和 MySQL 镜像,创建数据库并导入脚本,修改 Web 项目连接地址为 host.docker.internal:3307,打包 WAR 文件挂载至容器,成功实现用户登录与商品浏览功能,验证了容器间通信及 Web 应用正常运行。

2. 实战步骤

2.1 准备工作

  • 拉取mysql:latestubuntu:latest镜像。进入ubuntu容器,下载、安装和配置tomcat-10.1.49,利用docker commit命令提交镜像,改名为tomcat:10.1.49。进入mysql容器,设置密码、授权任意主机('root'@'%')访问MySQL全部数据库,利用docker commit命令提交镜像,改名为mysql:9.5.0
  • 执行命令:docker images
    在这里插入图片描述

2.2 创建数据库连接

2.2.1 启动mysql容器

  • 执行命令

    docker run -d ^
      --name mysql-server ^
      -e MYSQL_ROOT_PASSWORD=903213 ^
      -p 3307:3306 ^
      mysql:9.5.0
    

    在这里插入图片描述

  • 结果说明:该命令成功启动了一个名为 mysql-server 的 MySQL 容器,使用默认镜像,设置 root 密码为 903213,并将宿主机 3307 端口映射到容器的 3306 端口,MySQL 版本为 9.5.0,容器运行正常。

2.2.2 在Navicat里创建数据库连接

  • 设置连接名 - docker-mysql,主机名 - localhost,端口 - 3307,用户名 - root,密码 - 903213
    在这里插入图片描述
  • 打开创建的数据库连接 - docker-mysql
    在这里插入图片描述

2.3 创建数据库和导入脚本

2.3.1 创建数据库

  • 创建simonshop数据库,字符编码 - utf8mb4
    在这里插入图片描述
  • 单击【确定】按钮
    在这里插入图片描述
  • 打开simonshop数据库
    在这里插入图片描述

2.3.2 导入数据库脚本

  • 运行数据库脚本 - D:\WebProjects\simonshop.sql
    在这里插入图片描述
  • 单击【开始】按钮,可以看到,脚本导入成功
    在这里插入图片描述

2.3.3 查看表记录

  1. 查看用户表记录
    在这里插入图片描述
  2. 查看类别表
    在这里插入图片描述
  3. 查看商品表
    在这里插入图片描述
  4. 查看订单表
    在这里插入图片描述

2.4 Web项目打包

2.4.1 修改数据库IP地址

  • localhost:3306改成host.docker.internal:3307
    在这里插入图片描述

2.4.2 将Web项目打成war包

  • 打包录屏演示
    在这里插入图片描述
  • 查看生成的war包
    在这里插入图片描述
  • 更名为simonshop.war保存到D:\tmp目录
    在这里插入图片描述

2.5 启动tomcat容器

  • 执行命令

    docker run -d ^
      --name mymaster ^
      -p 8080:8080 ^
      -v D:/tmp/simonshop.war:/usr/local/apache-tomcat-10.1.49/webapps/simonshop.war ^
      tomcat:10.1.49 ^
      /usr/local/apache-tomcat-10.1.49/bin/catalina.sh run
    

    在这里插入图片描述

  • 结果说明:该命令成功启动了一个名为 mymaster 的 Tomcat 容器,将宿主机的 8080 端口映射到容器内,并挂载本地 WAR 文件至 Tomcat webapps 目录,使用指定版本 Tomcat 运行应用,容器运行正常。

2.6 测试部署在容器里的Web项目

2.6.1 显示项目首页

  • 访问http://localhost:8080/simonshop/
    在这里插入图片描述

2.6.2 显示登录页面

  • 单击首页里的【跳转到登录页面】按钮
    在这里插入图片描述

2.6.3 测试用户登录功能

  • 输入正确的用户名和密码(郑晓红:11111)
    在这里插入图片描述
  • 单击【登录】按钮,跳转到显示商品类别页面
    在这里插入图片描述

2.6.4 显示【家用电器】商品

  • 在类别页面单击【家用电器】按钮
    在这里插入图片描述

2.6.5 选购商品放入购物车

  • 将一些商品加入购物车
    在这里插入图片描述

3. 实战总结

  • 本次实战成功实现了基于 Docker 的 SimonShop 电商系统容器化部署。通过自定义构建 Tomcat 10.1.49 和 MySQL 9.5.0 镜像,合理配置容器网络与端口映射(MySQL 使用 3307 端口),确保宿主机与容器间、容器与容器间的正常通信。在 Navicat 中完成数据库创建与脚本导入,并将 Web 项目中的数据库连接地址调整为 host.docker.internal:3307,解决容器内访问宿主机服务的问题。最终通过挂载 WAR 包启动 Tomcat 容器,成功访问应用并验证用户登录、商品分类浏览等核心功能。整个过程体现了 Docker 在环境隔离、快速部署和跨平台一致性方面的优势,为后续微服务或云原生应用开发奠定基础。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

酒城译痴无心剑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值