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

news2025/2/25 2:35:03

文章目录

    • 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.jar

CMD ["--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:latest
 
COPY 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.coloradmin.cn/o/1585835.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

java数组.day16(冒泡排序,稀疏数组)

冒泡排序 冒泡排序无疑是最为出名的排序算法之一,总共有八大排序! 冒泡的代码还是相当简单的,两层循环,外层冒泡轮数,里层依次比较,江湖中人人尽皆知。 我们看到嵌套循环,应该立马就可以得出这个算法的时…

VBA信息获取与处理第四节:获取唯一非重复随机值的返回数组

《VBA信息获取与处理》教程(版权10178984)是我推出第六套教程,目前已经是第一版修订了。这套教程定位于最高级,是学完初级,中级后的教程。这部教程给大家讲解的内容有:跨应用程序信息获得、随机信息的利用、电子邮件的发送、VBA互…

001-NodeJs全局对象

概念 node是一个运行js的平台,在node中,用global对象取代了Window这个对象。 node中的repl环境可以执行js,通过命令node进入到repl环境。repl环境类似于Chrome的开发人员工具。 全局对象global 可以参考一下它的文档global全局对象 node版本介绍&am…

C++ stl容器vector的底层模拟实现

目录 前言: 1.成员变量,容量与大小 2.构造函数 无参构造: 带参的使用值进行构造: 使用迭代器区间进行构造: 3.交换 4.拷贝构造 5.赋值重载 6.迭代器 7.扩容 reserve: resize: 8.…

深入OceanBase内部机制:系统架构与组件精讲

码到三十五 : 个人主页 心中有诗画,指尖舞代码,目光览世界,步履越千山,人间尽值得 ! 目录 1️⃣OceanBase 整体架构1.1 分区1.2 分片1.3 日志流1.4 对等节点1.5 多租户 2️⃣OceanBase 架构与组件详解2.1 存储层2.2 …

公司电脑如何对文件进行加密?

在现代企业中,文件加密是确保敏感数据安全的关键。使用华企盾DSC数据安全防泄密系统,公司电脑可以轻松地对文件进行加密,以防止未授权的访问和数据泄露。以下是对文件进行加密的步骤和方法: 智能半透明加密:这种模式允…

【java数据结构-二叉树(上)】

java数据结构-二叉树(上) 二叉树的概念二叉树的节点介绍 二叉树构造如何使用兄弟表示法构造二叉树两种特别的二叉树二叉树的基本性质: 二叉树的存储二叉树的遍历:前序遍历:中序遍历:后序遍历:层…

pygame发射子弹后绘制射线

import pygame import sys import mathpygame.init()screen pygame.display.set_mode((800, 600)) pygame.display.set_caption("Rotate and Shoot Bullets")# 定义子弹类 class Bullet:def __init__(self, x, y, angle):self.x xself.y yself.angle angleself.s…

python中的异常

1、NoSuchElementException 找不到元素 2、ElementNotInteractableException 元素无法交互 可能原因1:元素定位到以后,无法点击---元素未渲染完 解決:使用expected_conditions模块下的element_to_be_clickable来判断元素是否可被点击&#…

【MATLAB源码-第8期】基于matlab的DPSK的误码率仿真,差分编码使用汉明码(hanming)。

1、算法描述 差分相移键控常称为二相相对调相,记作2DPSK。它不是利用载波相位的绝对数值传送数字信息,而是用前后码元的相对载波相位值传送数字信息。所谓相对载波相位是指本码元初相与前一码元初相之差。差分相移键控信号的波形如概述图所示。 假设相对…

JavaEE 初阶篇-深入了解定时器、工厂模式和比较器

🔥博客主页: 【小扳_-CSDN博客】 ❤感谢大家点赞👍收藏⭐评论✍ 文章目录 1.0 定时器概述 2.0 实现定时器 2.1 实现定时器 - 定义 MyTask 任务类 2.2 实现定时器 - MyTimer 定时器类存放任务的方法 2.3 实现定时器 - MyTimer 定时器类读取任务…

群晖虚拟机搭建Synology Drive并实现Obsidian笔记异地多端同步

文章目录 一、简介软件特色演示: 二、使用免费群晖虚拟机搭建群晖Synology Drive服务,实现局域网同步1 安装并设置Synology Drive套件2 局域网内同步文件测试 三、内网穿透群晖Synology Drive,实现异地多端同步Windows 安装 Cpolar步骤&#…

二叉树应用——最优二叉树(Huffman树)、贪心算法—— Huffman编码

1、外部带权外部路径长度、Huffman树 从图中可以看出,深度越浅的叶子结点权重越大,深度越深的叶子结点权重越小的话,得出的带权外部路径长度越小。 Huffman树就是使得外部带权路径最小的二叉树 2、如何构造Huffman树 (1&#xf…

InternlM2

第一次作业 基础作业 进阶作业 1. hugging face下载 2. 部署 首先,从github上git clone仓库 https://github.com/InternLM/InternLM-XComposer.git然后里面的指引安装环境

鸿蒙4.2开放升级,首批公测包含24款机型,快来升级尝鲜

在今天下午刚刚结束的鸿蒙生态春季沟通会上,余承东提到了一个关于鸿蒙系统的细节,那就是目前top5000的App里,已经有4000多款App确定加入。 如此量级,预测基本能够覆盖常用的应用了,此前担心的应用生态问题也得到解决&a…

Harmony鸿蒙南向驱动开发-I3C接口使用

功能简介 I3C(Improved Inter Integrated Circuit)总线是由MIPI Alliance开发的一种简单、低成本的双向二线制同步串行总线。 I3C是两线双向串行总线,针对多个传感器从设备进行了优化,并且一次只能由一个I3C主设备控制。相比于I…

[计算机效率] 鼠标手势工具:WGestures(解放键盘的超级效率工具)

3.22 鼠标手势工具:WGestures 通过设置各种鼠标手势和操作进行绑定。当用户通过鼠标绘制出特定的鼠标手势后就会触发已经设置好的操作。有点像浏览器中的鼠标手势,通过鼠标手势操纵浏览器做一些特定的动作。这是一款强大的鼠标手势工具,可以…

Unity 布局 HorizontalLayoutGroup 多行 换行

演示Gif: 现象: 子元素宽度不同,超出父元素后不会换行 GridLayout则是固定宽度也不能用, 需求 水平排版的同时,超出父级后换行 代码: 催更就展示[狗头]

李廉洋;4.11#黄金,WTI原油#行情走势分析策略。

美国银行预计,在今天召开的欧洲央行会议上不会有重大的政策变化,但欧洲央行正逐渐接近开始降息,尽管它采取的是一种谨慎的、依赖数据的方式。虽然欧洲央行对降息轨迹的信心不断增强,但降息的具体速度和幅度仍未公布,而…

第06章 网络传输介质

6.1 本章目标 了解双绞线分类和特性了解同轴电缆分类和特性了解光纤分类和特性了解无线传输介质分类和特性 6.2 传输介质分类 现在社会还是以有线介质为主 计算机通信 - 有线通信 - 无线通信有线通信传输介质 - 双绞线 - 同轴电缆 - 光导纤维无线通信 - 卫星 - 微波 - 红外…