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

Docker手动在虚拟机上部署前端、后端和数据库

 💥 该系列属于【SpringBoot基础】专栏,如您需查看其他SpringBoot相关文章,请您点击左边的连接

目录

一、项目准备

二、MySQL数据库部署

三、SpringBoot后端部署

四、Vue前端部署


一、项目准备

准备数据库、前端项目、后端项目。

准备一个连接服务器的客户端,后续使用的是MobaXterm。

准备好linux虚拟机。

准备好已经安装的docker。

二、MySQL数据库部署

通过docker安装mysql之前,首先要进行本地目录的挂载。

在虚拟机上创建本地目录:

mkdir /root/mysql
mkdir /root/mysql/data
mkdir /root/mysql/conf
mkdir /root/mysql/init

创建成功: 

准备好自己的conf和init,自己的conf目录下有hm.cnf文件:

自己的init目录下有hmall.sql文件:

然后将自己的conf和init移动到挂载目录下:

 然后在创建mysql容器的时候实现数据目录、配置文件、初始化脚本的挂载:

password改成自己的

docker run -d \--name mysql \-p 3306:3306 \-e TZ=Asia/Shanghai \-e MYSQL_ROOT_PASSWORD=wangjx17 \-v /root/mysql/data:/var/lib/mysql \-v /root/mysql/conf:/etc/mysql/conf.d \-v /root/mysql/init:/docker-entrypoint-initdb.d \mysql:8.0.26

此时的data目录下,已经有新的数据库了:

可以在mysql客户端,如navicat中查看hmall数据库的所有表单信息,不过要提前建立连接,主机填上虚拟机的IP地址:

可以在navicat中查看虚拟机上的mysql的数据库信息:

 至此,数据库部署完毕。

三、SpringBoot后端部署

准备一个springboot项目,如下:

600

配置好jdk和maven环境后,点击clean再package

 可以看到在hm-service中生成了一个target目录和Dockerfile,且在target目录下面有一个hm-service.jar:

然后在虚拟机的root目录下,创建一个hmallDemo目录,方便管理:

mkdir hmallDemo

随后将Dockerfile和hm-service.jar拖拽到hmallDemo下:

创建hmall镜像:

docker build -t hmall .

查看创建成功的镜像:

docker images

 然后创建并运行容器:

--network mynet可选,把容器添加到自定义网络

docker run -d --name hm -p 8080:8080 --network mynet hmall

然后查看运行中的容器:

docker ps

观察hmall的日志:

docker logs -f hm

可以看出来Spring项目启动成功了: 

通过浏览器访问:

四、Vue前端部署

准备好vue项目,将它打包成html文件夹,并用nginx.conf进行配置。

  • html是静态资源目录,我们需要把hmall-portal以及hmall-admin都复制进去

  • nginx.conf是nginx的配置文件,主要是完成对html下的两个静态资源目录做代理

 nginx.conf如下:


worker_processes  1;events {worker_connections  1024;
}http {include       mime.types;default_type  application/json;sendfile        on;keepalive_timeout  65;server {listen       18080;# 指定前端项目所在的位置location / {root /usr/share/nginx/html/hmall-portal;}error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}location /api {rewrite /api/(.*)  /$1 break;proxy_pass http://hm:8080;}}server {listen       18081;# 指定前端项目所在的位置location / {root /usr/share/nginx/html/hmall-admin;}error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}location /api {rewrite /api/(.*)  /$1 break;proxy_pass http://hm:8080;}}
}

可以看出来有两个端口,分别为前台portal和后台admin。

把整个nginx目录上传到虚拟机的/root目录下:

然后创建nginx容器并完成两个挂载:

  • /root/nginx/nginx.conf挂载到/etc/nginx/nginx.conf

  • /root/nginx/html挂载到/usr/share/nginx/html

由于需要让nginx同时代理hmall-portal和hmall-admin两套前端资源,因此我们需要暴露两个端口:

  • 18080:对应hmall-portal

  • 18081:对应hmall-admin

命令如下:

docker run -d \--name nginx \-p 18080:18080 \-p 18081:18081 \-v /root/nginx/html:/usr/share/nginx/html \-v /root/nginx/nginx.conf:/etc/nginx/nginx.conf \--network mynet \nginx

然后查看运行中的容器:

docker ps

查看日志输出

docker logs -f hm

打开浏览器,可以看见成功部署了:

点击搜索:

因此前后端和数据库均部署成功。 

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • SAP LE学习笔记04 - MM与WM跨模块收货到仓库的流程中 如何既创建TR又同时立即在前台创建TO
  • jmeter安装及环境变量配置、Jmeter目录介绍和界面详解
  • Pcie学习笔记(24)
  • Mysql原理与调优-Mysql的内存结构
  • Flask框架探索:轻量级与灵活性的完美结合
  • 入门mysql数据库
  • 空状态设计教程:连接用户体验的桥梁
  • 制造企业MES系统质检管理的应用
  • 【杂乱算法】前缀和与差分
  • [Linux#42][线程] 锁的接口 | 原理 | 封装与运用 | 线程安全
  • 使用 Vue 官方脚手架初始化 Vue3 项目
  • 基于UE5和ROS2的激光雷达+深度RGBD相机小车的仿真指南(二)---ROS2与UE5进行图像数据传输
  • 多维的vector也可以sort!力扣刷题-合并区间有感
  • Esxi 7.0 安装windows xp 问题汇总
  • 大模型面试问题记录
  • 「面试题」如何实现一个圣杯布局?
  • 2019年如何成为全栈工程师?
  • Asm.js的简单介绍
  • Brief introduction of how to 'Call, Apply and Bind'
  • Effective Java 笔记(一)
  • Git初体验
  • LeetCode算法系列_0891_子序列宽度之和
  • nodejs调试方法
  • Sequelize 中文文档 v4 - Getting started - 入门
  • SSH 免密登录
  • 关于 Cirru Editor 存储格式
  • 开源地图数据可视化库——mapnik
  • 码农张的Bug人生 - 见面之礼
  • 面试总结JavaScript篇
  • 配置 PM2 实现代码自动发布
  • 前端每日实战:61# 视频演示如何用纯 CSS 创作一只咖啡壶
  • 异常机制详解
  • 译有关态射的一切
  • 用简单代码看卷积组块发展
  • MPAndroidChart 教程:Y轴 YAxis
  • 阿里云移动端播放器高级功能介绍
  • 正则表达式-基础知识Review
  • ​sqlite3 --- SQLite 数据库 DB-API 2.0 接口模块​
  • ​zookeeper集群配置与启动
  • ​软考-高级-系统架构设计师教程(清华第2版)【第9章 软件可靠性基础知识(P320~344)-思维导图】​
  • !$boo在php中什么意思,php前戏
  • #Linux(权限管理)
  • #使用清华镜像源 安装/更新 指定版本tensorflow
  • (Matlab)使用竞争神经网络实现数据聚类
  • (Redis使用系列) Springboot 整合Redisson 实现分布式锁 七
  • (层次遍历)104. 二叉树的最大深度
  • (附源码)ssm考生评分系统 毕业设计 071114
  • (紀錄)[ASP.NET MVC][jQuery]-2 純手工打造屬於自己的 jQuery GridView (含完整程式碼下載)...
  • (四)图像的%2线性拉伸
  • .NET 反射的使用
  • .net 后台导出excel ,word
  • .net 提取注释生成API文档 帮助文档
  • .NET/C# 阻止屏幕关闭,阻止系统进入睡眠状态
  • .net通用权限框架B/S (三)--MODEL层(2)
  • .Net中的设计模式——Factory Method模式