当前位置: 首页 > news >正文

Docker容器部署Tomcat线上商城

目录

docker容器部署Tomcat线上商城

创建存放目录、并将线上商城应用放在 shangcheng目录下

下载镜像

生成容器并复制配置文件server.xml

​编辑

将配置文件server.xml复制到宿主机中

​编辑

删除测试的容器

移动文件

mysql

​编辑

注入数据

修改商城配置文件

​编辑

创建tomcat容器

查看ip

访问成功

web访问


docker容器部署Tomcat线上商城

创建存放目录、并将线上商城应用放在 shangcheng目录下

[root@docker ~]# tree tomcat
tomcat
├── conf.d
├── logs
└── shangcheng
​
3 directories, 0 files

下载镜像

[root@docker ~]# docker pull tomcat:8

生成容器并复制配置文件server.xml

[root@docker ~]#  docker run -itd --name tomcat --net bridge -v /root/tomcat/shangcheng/:/usr/local/tomcat/webapps/  tomcat:8
b48ca826ee8c659f31e03a082ab7de52db8c7d80434f4c7784a6de2644ac2c4e
[root@docker ~]# docker ps 
CONTAINER ID   IMAGE          COMMAND                   CREATED         STATUS         PORTS                                                                          NAMES
b48ca826ee8c   tomcat:8       "catalina.sh run"         4 seconds ago   Up 4 seconds   8080/tcp                                                                       tomcat
88254911b6bc   discuz-nginx   "/docker-entrypoint.…"   2 days ago      Up 2 days      0.0.0.0:80->80/tcp, [::]:80->80/tcp, 0.0.0.0:443->443/tcp, [::]:443->443/tcp   nginx
e9f96f110319   discuz-php     "docker-php-entrypoi…"   2 days ago      Up 2 days      9000/tcp                                                                       php
06d04c907afb   mysql:8.0      "docker-entrypoint.s…"   2 days ago      Up 2 days      3306/tcp, 33060/tcp                                                            mysql
[root@docker ~]# docker exec -it b4 bash
root@b48ca826ee8c:/usr/local/tomcat# ls
bin           conf             lib      logs            NOTICE     RELEASE-NOTES  temp     webapps.dist
BUILDING.txt  CONTRIBUTING.md  LICENSE  native-jni-lib  README.md  RUNNING.txt    webapps  work
root@b48ca826ee8c:/usr/local/tomcat# cd conf/
root@b48ca826ee8c:/usr/local/tomcat/conf# ls
Catalina             context.xml           logging.properties  tomcat-users.xsd
catalina.policy      jaspic-providers.xml  server.xml          web.xml
catalina.properties  jaspic-providers.xsd  tomcat-users.xml
root@b48ca826ee8c:/usr/local/tomcat/conf# cat server.xml 

将配置文件server.xml复制到宿主机中

[root@docker ~]# tree tomcat/
tomcat/
├── conf.d
│   └── server.xml
├── logs
└── shangcheng
​
3 directories, 1 file

删除测试的容器

[root@docker ~]# docker rm -f b4
b4

移动文件

将线上商城下的 .sql 文件 移动 到 之前mysql挂载的 目录里 ( /opt/discuz/mysql/data/ )

[root@docker ~]# cd tomcat/shangcheng/ROOT/
[root@docker ROOT]# ls
注意事项  biyesheji.sql  favicon.ico  images.zip  js   META-INF  WEB-INF
assets    css            images       index.jsp   lib  static
[root@docker ROOT]# mv biyesheji.sql /opt/discuz/mysql/data/

进入到mysql容器

mysql

[root@docker ~]# docker ps 
CONTAINER ID   IMAGE          COMMAND                   CREATED         STATUS         PORTS                                                                          NAMES
b48ca826ee8c   tomcat:8       "catalina.sh run"         3 minutes ago   Up 3 minutes   8080/tcp                                                                       tomcat
88254911b6bc   discuz-nginx   "/docker-entrypoint.…"   2 days ago      Up 2 days      0.0.0.0:80->80/tcp, [::]:80->80/tcp, 0.0.0.0:443->443/tcp, [::]:443->443/tcp   nginx
e9f96f110319   discuz-php     "docker-php-entrypoi…"   2 days ago      Up 2 days      9000/tcp                                                                       php
06d04c907afb   mysql:8.0      "docker-entrypoint.s…"   2 days ago      Up 2 days      3306/tcp, 33060/tcp                                                            mysql
[root@docker ~]# docker exec -it 06 bash
bash-5.1# mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 28
Server version: 8.0.43 MySQL Community Server - GPL
​
Copyright (c) 2000, 2025, Oracle and/or its affiliates.
​
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
​
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
​
mysql> create database biyesheji;
Query OK, 1 row affected (0.00 sec)
​
mysql> create user 'tomcat'@'%' identified by '123.com';
Query OK, 0 rows affected (0.00 sec)
​
mysql> grant all on biyesheji.* to 'tomcat'@'%';
Query OK, 0 rows affected (0.00 sec)
​
mysql> exit
Bye

注入数据

bash-5.1# mv /var/lib/mysql/biyesheji.sql ./
bash-5.1# ls
afs            boot                        entrypoint.sh  lib    mnt   root  srv  usr
bin            dev                         etc            lib64  opt   run   sys  var
biyesheji.sql  docker-entrypoint-initdb.d  home           media  proc  sbin  tmp
bash-5.1# mysql -uroot -p'root_password' biyesheji < biyesheji.sql 
mysql: [Warning] Using a password on the command line interface can be insecure.

修改商城配置文件

(只需再宿主机上修改即可)

#在fore的前面加 /
[root@docker ~]# cd tomcat/shangcheng/ROOT/
[root@docker ROOT]# ls
注意事项  biyesheji.sql  favicon.ico  images.zip  js   META-INF  WEB-INF
assets    css            images       index.jsp   lib  static
[root@docker ROOT]# vim index.jsp 

#数据库的主机名和创建的用户名和密码
[root@docker tomcat]# cd  shangcheng/ROOT/WEB-INF/classes/
[root@docker classes]# vim jdbc.properties 

创建tomcat容器

注意:这里为什么要指定网络呢?因为必须跟数据库容器在同一个子网内才能通信,所以指定网络时先查看一下数据库容器的网络是哪一个!!!

[root@docker ~]# docker inspect 06

[root@docker ~]# docker run -itd   --name tomcat   --network  discuz_discuz-network  -p 8080:8080   -v /root/tomcat/shangcheng/:/usr/local/tomcat/webapps/   -v /root/tomcat/conf.d/server.xml:/usr/local/tomcat/conf/server.xml   -v /root/tomcat/log/:/usr/local/tomcat/logs/   --restart=always   tomcat:8 
abf36428eeb8f50fd060aec049f919c8eed987984be4e29e554b6a80ee1d0905
# --name指定容器名,--network 指定网络名,-p指定端口映射,-v指定宿主机目录挂载到容器目录,--restart=always设置容器的重启策略。always: 如果容器因任何原因退出(即使是手动停止的),Docker 守护进程(服务)都会自动重启这个容器。每次宿主机重启后,Docker 服务启动时也会自动重启这个容器。这是确保关键服务持续运行最常用的策略。

查看ip

[root@docker ~]# docker inspect ab

与数据库同属一个子网

访问成功

[root@docker ~]# curl 172.18.0.5:8080/biyesheji/fore/foreIndex/
[root@docker ~]# curl 192.168.158.150:8080/biyesheji/fore/foreIndex/

web访问

http://www.dtcms.com/a/323107.html

相关文章:

  • 组件通信的方式
  • AI编程工具 | Trae介绍
  • [SC]高效地调试SystemC模型中的语法错误
  • 如何用OpenAI SDK调用Ollama LLM
  • 智慧养老场景跌倒检测准确率↑32%:陌讯多模态融合算法实战解析
  • GPT-5深度解析:革命性AI模型的全面报告与实战指南
  • windows10 ubuntu 24.04 双系统 安装教程
  • ubuntu dpkg命令使用指南
  • 【排序算法】②希尔排序
  • Delphi:TList/TObjectList 设计中的 Notify 设计范式
  • Day38--动态规划--322. 零钱兑换,279. 完全平方数,139. 单词拆分,56. 携带矿石资源(卡码网),背包问题总结
  • 10 分钟用 FastAPI 将机器学习模型上线为 REST API
  • day28 IPC通信机制
  • C++隐式转换的魔法与陷阱:explicit关键字的救赎
  • RecyclerView 缓存机制
  • centos 怎么将一些命令设置为快捷命令
  • 2025华数杯数学建模C题:可调控生物节律LED光源全解析
  • LLM表征的提取方式
  • 【Python 高频 API 速学 ⑥】
  • 【Mac】MLX:Lora微调工作流
  • 【排序算法】①直接插入排序
  • QT第二讲-信号和槽
  • uniapp实现的圆形滚盘组件模板
  • ThingsBoard配置邮件发送保姆级教程(新版qq邮箱)
  • SkyWalking-2--Java Agent是什么?
  • Qt与嵌入式设备中的字节序问题
  • 客服Agent革命:智能客服系统的技术实现与效果评估
  • 八、《DaaS(设备即服务):企业轻资产化新路径》--从97.4%首期投入削减到AI算力高效迭代的范式革命
  • ​​​​​​​【Datawhale AI夏令营】多模态RAG财报问答挑战赛:学习笔记与上分思考
  • “黑影御剑飞行”视频引发的思考