文章目录
- [1. 实战概述](#1. 实战概述)
- [2. 实战步骤](#2. 实战步骤)
-
- [2.1 准备工作](#2.1 准备工作)
- [2.2 创建数据库连接](#2.2 创建数据库连接)
-
- [2.2.1 启动mysql容器](#2.2.1 启动mysql容器)
- [2.2.2 在Navicat里创建数据库连接](#2.2.2 在Navicat里创建数据库连接)
- [2.3 创建数据库和导入脚本](#2.3 创建数据库和导入脚本)
-
- [2.3.1 创建数据库](#2.3.1 创建数据库)
- [2.3.2 导入数据库脚本](#2.3.2 导入数据库脚本)
- [2.3.3 查看表记录](#2.3.3 查看表记录)
- [2.4 Web项目打包](#2.4 Web项目打包)
-
- [2.4.1 修改数据库IP地址](#2.4.1 修改数据库IP地址)
- [2.4.2 将Web项目打成war包](#2.4.2 将Web项目打成war包)
- [2.5 启动tomcat容器](#2.5 启动tomcat容器)
- [2.6 测试部署在容器里的Web项目](#2.6 测试部署在容器里的Web项目)
-
- [2.6.1 显示项目首页](#2.6.1 显示项目首页)
- [2.6.2 显示登录页面](#2.6.2 显示登录页面)
- [2.6.3 测试用户登录功能](#2.6.3 测试用户登录功能)
- [2.6.4 显示【家用电器】商品](#2.6.4 显示【家用电器】商品)
- [2.6.5 选购商品放入购物车](#2.6.5 选购商品放入购物车)
- [3. 实战总结](#3. 实战总结)
1. 实战概述
- 本实战通过 Docker 容器化部署 SimonShop 电商项目:基于自定义 Tomcat 和 MySQL 镜像,创建数据库并导入脚本,修改 Web 项目连接地址为
host.docker.internal:3307,打包 WAR 文件挂载至容器,成功实现用户登录与商品浏览功能,验证了容器间通信及 Web 应用正常运行。
2. 实战步骤
2.1 准备工作
- 拉取
mysql:latest和ubuntu: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容器
-
执行命令
shelldocker 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 查看表记录
- 查看用户表记录

- 查看类别表

- 查看商品表

- 查看订单表

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容器
-
执行命令
shelldocker 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 在环境隔离、快速部署和跨平台一致性方面的优势,为后续微服务或云原生应用开发奠定基础。