Docker部署SpringBoot+Vue前后端分离项目

文章目录

    • 1. 安装Docker
      • 1. 1 卸载旧版Docker
      • 1.2 配置yum仓库
      • 1.3 安装Docker
      • 1.4 添加自启动配置
      • 1.5 配置阿里云镜像加速
      • 1.6 测试
    • 2. 安装Nginx
      • 2.1 拉取镜像
      • 2.2 安装Nginx
      • 2.3 测试
    • 3. 安装MySQL
      • 3.1 拉取镜像
      • 3.2 安装MySQL
      • 3.3 连接MySQL
    • 4. 部署SpringBoot项目
      • 4.1 Maven打包
      • 4.2 编写Dockefile
      • 4.3 将文件上传至Linux服务器
      • 4.4 构建镜像
      • 4.5 运行容器
    • 5. 部署Vue前端项目
      • 5.1 打包
      • 5.2 编写Dockefile
      • 5.3 构建镜像
      • 5.4 构建容器

1. 安装Docker

1. 1 卸载旧版Docker

首先如果系统中已经存在旧的Docker,则先卸载:

yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine

1.2 配置yum仓库

本教程使用服务器是 centos 7 环境

如果CentOS系统内核低于3.10,可以升级软件包及内核,通过 yum update 升级。

Linux系统分为两种:

  • RedHat系列:Redhat、Centos、Fedora等
  • Debian系列:Debian、Ubuntu等

RedHat系列的包管理工具是yum
Debian系列的包管理工具是apt-get

首先需要安装一个yum工具

yum install -y yum-utils

安装Docker的强依赖

yum install -y yum-utils device-mapper-persistent-data lvm2

安装成功之后,执行命令,配置Docker的yum源

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

1.3 安装Docker

yum install docker-ce docker-ce-cli containerd.io -y 

1.4 添加自启动配置

因为我们是本地虚拟机,不能像云服务器一样无时无刻在运行,所以我们需要配置一下,让他开机自启,省得我们每次打开虚拟机都要打开docker。

# 启动Docker
systemctl start docker# 停止Docker
systemctl stop docker# 重启
systemctl restart docker# 设置开机自启
systemctl enable docker# 执行docker ps命令,如果不报错,说明安装启动成功
docker ps

1.5 配置阿里云镜像加速

在这里插入图片描述

在这里插入图片描述
页面向下滚动,即可找到配置的文档说明:

选择自己Linux对应的版本即可

在这里插入图片描述
直接粘贴到命令行即可。

1.6 测试

输入命令测试docker是否安装完毕

docker--version

在这里插入图片描述

到这里,我们Docker就已经成功安装完。

2. 安装Nginx

2.1 拉取镜像

首先我们需要去拉取镜像。执行以下命令进行镜像拉取。

docker pull nginx

然后通过以下命令查看我们拉取的镜像

docker images

2.2 安装Nginx

通过以下命令进行安装

docker run -d --name nginx -p 80:80 nginx

2.3 测试

然后我们通过我们的IP+端口号访问我们的nginx服务。

浏览器打开http://192.168.186.101:80 ,进行访问,这里80是可以省略的,默认访问的就是80端口。
在这里插入图片描述

可以看到,我们Nginx的默认欢迎页,大功告成!

3. 安装MySQL

3.1 拉取镜像

利用Docker来安装一个MySQL

拉取镜像。执行以下命令进行镜像拉取。

docker pull mysql

3.2 安装MySQL

通过以下命令进行安装。

docker run -d \--name mysql \-p 3306:3306 \-e TZ=Asia/Shanghai \-e MYSQL_ROOT_PASSWORD=password \mysql

通过以下命令启动容器并查看我们的容器是否运行成功

# 启动容器
docker start mysql#查看正在运行的容器
docker ps

3.3 连接MySQL

使用Navicat连接mysql
在这里插入图片描述
然后填好服务器基本信息之后,点击测试连接。
在这里插入图片描述
然后发现我们的数据库,可以看到初始的四个数据库,说明本次安装成功!

4. 部署SpringBoot项目

4.1 Maven打包

在这里插入图片描述

4.2 编写Dockefile

FROM openjdk:11  # 指定了基础镜像,即在创建新镜像时将从openjdk:11这个镜像开始。COPY *.jar /app.jar # 重命名jar包为app.jarCMD ["--server.port=8989"] # 指定端口号命令EXPOSE 8989 #docker对外暴露 8989端口ENTRYPOINT ["java","-jar","/app.jar"] # 设置了容器启动时执行的默认命令。当容器启动时,它会执行java -jar /app.jar命令来启动Java应用程序。

4.3 将文件上传至Linux服务器

这里创建两个目录,springboot目录主要放后端项目的一些jar包,dockerfile等文件,vue目录主要放dist打包目录。

mkdir springboot
mkdir vue

将文件上传到 Linux 服务器上面,必须放在同级目录一起!
在这里插入图片描述

4.4 构建镜像

通过以下命令进行构建镜像。

docker build -t blog-springboot .  #点千万别漏了,这里取名镜像为api,可以随便取名!

4.5 运行容器

查看当前镜像

docker images

开始构建容器。

docker run -d -p 8989:8989 --name blog-springboot blog-springboot

查看容器

docker ps

5. 部署Vue前端项目

5.1 打包

通过前端脚本进行打包。
在这里插入图片描述

然后将dist目录上传到服务器目录vue目录中。

5.2 编写Dockefile

FROM nginx:latestCOPY dist/ /usr/share/nginx/html/
EXPOSE 3001

5.3 构建镜像

docker build -t blog-vue .

查看镜像

docker images

5.4 构建容器

docker run -d -p 3001:80 --name blog-vue blog-vue

查看运行的容器

docker images

然后打开浏览器通过ip + 端口进行访问

笔者这里是 :http://192.168.186.101:3001/

可以看到这里已经成功部署了。

这里也可以通过命令来查看实时日志情况。

docker logs -f 容器名

在这里插入图片描述


当你觉得自己很难的时候,说明你在走上坡路,别急,美好正在马不停蹄地赶来的路上。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/305852.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

qt 打印日志

在 Qt Creator 中,将 QDebug、QInfo、QWarning、QCritical 和 QFatal 打印的日志输出到指定文件,需要设置 Qt 的消息处理机制。这通常涉及到安装一个自定义的消息处理器,该处理器将日志消息重定向到文件。以下是一个基本的步骤指南&#xff1…

R-Tree原理及朴素实现代码

R树是用于空间访问方法的树数据结构,即用于索引多维信息,例如地理坐标、矩形或多边形。 NSDT工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器 - REVIT导出3D模型插件 -…

使用ROCm的HIP API向量加法程序

一、向量加法程序 Radeon Open Compute (ROCm) 是一个开源平台,用于加速高性能计算 (HPC) 和机器学习应用程序。它支持包括GPUs在内的多种硬件,并提供HIP (Heterogeneous-compute Interface for Portability) 作为CUDA代码的便捷转换工具。为了提供一个…

蓝桥杯算法题:栈(Stack)

这道题考的是递推动态规划,可能不是很难,不过这是自己第一次靠自己想出状态转移方程,所以纪念一下: 要做这些题目,首先要把题目中会出现什么状态给找出来,然后想想他们的状态可以通过什么操作转移&#xf…

关闭笔记本自带的键盘

目录 一、问题 二、方法 【方法一】 【方法二】 一、问题 笔记本自带的键盘上的个别按键又坏了,可能是因为使用电脑时,最先坏的几个按键那里温度比较高,久而久之就烧坏了吧。距离上次更换新键盘才差不多一年,所以不打算再买新…

基于arcgis /envi PCA(主成分分析)实现过程

基于arcgis /envi PCA(主成分分析)实现过程 1 提取研究范围 2对研究范围进行重采样 (根据数据情况进行选做,如数据较大建议进行该步骤操作) 3 对研究范围内数据进行归一化处理 4 将空值替换为0 5 对同期不同要素数据进行波段合成 对波段…

python pivot_table功能详解与应用 -- 实现Excel的透视表功能

1. 背景描述 透视表是一种能对多维数据进行分析统计的工具,具有筛选处理、分类汇总,优化显示等强大的功能,是Excel中最好用的数据分析工具之一。 在自动化办公中,使用python的pivot_table(),搭配合适的聚合函数&#x…

【linux篇】ubuntu安装教程

有道是工欲善其事必先利其器,在学习linux前,先得搭建好环境才能事半功倍。 1.VMware虚拟机安装 打开浏览器,可直接在搜索栏中输入VMware。

【C#】 删除首/尾部字符

代码 static void Main(string[] args){string str "123abc";string strdelete "abc";string str1 str.Trim(1);string strc str1.Trim(c);string str11 str1.TrimStart(1);string strcc str1.TrimEnd(c);string strabc str.Trim(strdelete.ToCharA…

每天学点儿Python(5) -- 序列索引和切片

Python中,序列是指一块可存放多个值的连续内存空间,这些值按一定顺序排列,可通过每个值所在位置的编号(称为索引)访问它们。它类似于C/C中的数组或字符串,但又比数组或字符串强大很多 序列类型包括字符串、…

ES6 全详解 let 、 const 、解构赋值、剩余运算符、函数默认参数、扩展运算符、箭头函数、新增方法,promise、Set、class等等

目录 ES6概念ECMAScript6简介ECMAScript 和 JavaScript 的关系ES6 与 ECMAScript 2015 的关系 1、let 、 const 、var 区别2、变量解构赋值1、数组解构赋值2、对象解构赋值3、字符串的解构赋值 3、展开剩余运算符1、**展开运算符(...)**2、**剩余运算符(...)** 4、函数的拓展函…

日出6万单!美区“开塞露”卖疯了,保健赛道正式起飞!

质疑养生,理解养生,加入养生! 从保温杯里泡枸杞,到桌上摆满保健品,"养生"已经从一种模糊的概念转变为了生活中的刚需。在加班、熬夜、脱发这些"亚健康"标签的围绕下,年轻人开始重视自…

D-LinkNAS 远程命令执行漏洞(CVE-2024-3273)RCE漏

声明: 本文仅用于技术交流,请勿用于非法用途 由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者不为此承担任何责任。 简介 D-LinkNAS是由D-Link公司制造的网络附加存储设备。…

git 账号 personal access token

新入职,gitlab登录使用公司验证方式 clone项目时,要求填写用户名,access token或密码 用户名:gitlab的名字 access token:从这里获取

函数、指针和数组的相互运用(C语言)

1、函数指针数组 含义:数组的每个元素都是函数指针类型.eg: (此代码链接:http://t.csdnimg.cn/ClJmb.也可以在我发布博客中找到) 2、指向函数指针数组的指针 1、引入 3、回调函数 1、含义:就是一个通过…

Pixel 手机上连接提示受阻,无法上网-解决方法

命令行中输入 adb shell settings delete global captive_portal_https_urladb shell settings delete global captive_portal_http_url输入服务器信息 adb shell settings put global captive_portal_http_url http://connect.rom.miui.com/generate_204adb shell settings …

package.java文件的作用

你查看springboot的源码,有很多类都有这个文件,在idea不能创建,因为不支持这种命名,只能用记事本创建后复制都项目中。 主要应用是给类添加正常,或者把公用的注解都放到这里,常量不合适,作用范…

0.6V30A的降压开关稳压器IC解决方案上哪找?NCP3230MNTXG了解一下

降压开关稳压器IC是一种常见的电源管理器件,具有以下几个优势: 高效性:降压开关稳压器IC采用了开关调节的方式,能够实现高效的电能转换。相比传统的线性稳压器,它的能效更高,能够减少功耗和热量产生。 小尺…

力扣题目 19:删除链表的倒数第N个节点 【python】

👤作者介绍:10年大厂数据\经营分析经验,现任大厂数据部门负责人。 会一些的技术:数据分析、算法、SQL、大数据相关、python 欢迎加入社区: 码上找工作http://t.csdnimg.cn/Q59WX 作者专栏每日更新: LeetCod…

Redis中的集群(六)

集群 ASK错误 在进行重新分片期间,源节点向目标节点迁移一个槽的过程中,可能会出现这样一种情况:属于被迁移槽的一部分键值对保存在源节点里面,而另一部分键值对则保存在目标节点里面。当客户端向源节点发送一个与数据库有关的命令&#xf…