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.mzph.cn/news/809530.shtml

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

相关文章

深度学习Vue框架生命周期(三)

一.什么是生命周期? 在vue中,生命周期就是vue实例程序从创建到销毁的这个过程,在生命周期中,不同阶段我们可以做不同的事情。vue的生命周期是创建阶段、挂载阶段、更新阶段、销毁阶段 二.什么是钩子函数? 钩子函数就是…

数据库数据恢复—Sql Server数据库文件丢失如何恢复数据?

服务器数据恢复环境: 一台安装windows server操作系统的服务器。一组由8块硬盘组建的RAID5,划分LUN供这台服务器使用。 在windows服务器内装有SqlServer数据库。存储空间LUN划分了两个逻辑分区。 服务器故障&初检: 由于未知原因&#xf…

Windows联网状态工具TCPView

文章目录 TCPView命令行工具更多Sysinternals Suite工具 TCPView TCPView用于显示系统上所有 TCP 和 UDP 终结点的详细列表,包括本地和远程地址以及 TCP 连接的状态,界面如下。 列表的表头含义如下 表头含义表头含义Process name应用名称Process id进程…

最新Android Studio导入aar包的方法

以前的方式,目前看网上也大多数都是这种方式,导致我本地加的时候一直有问题 但是这样都无法sync以及编译通过,因为方式已经变了 1:将aar文件复制到MyApplication\app\libs下 2:在MyApplication\app\build.gradle下添加…

HTTP请求报文介绍

本章简要介绍渗透测试员在攻击Web应⽤程序时可能遇到的关键技术。 将分析HTTP协议、服务器和客⼾端常⽤的技术以及⽤于在各种情形下呈现数据的编码⽅案。 这些技术⼤都简单易懂,掌握其相关特性对于向Web应⽤程序发动有效攻击极其重要。 1.1 HTTP协议概述介绍 HTT…

VMvare进行靶场环境搭建,防火墙连接[物理主机,攻击机,靶机],主机与VM虚拟网卡拓扑形象,web连接防火墙报错

配置目标 两块虚拟网卡分别为vmnet1和vmnet8 vmnet1配置两个网段192.168.20.1/24和192.168.30.1/24 其中192.168.20.0网段将防火墙管理接口0/0/0,接口地址为192.168.20.100和物理机192.168.20.1/24进行连接 其中192.168.30.0网段将防火墙1/0/0接口,接…

智能AI写作,自动写文案效率高

随着科技的不断发展,人工智能领域的应用也日益广泛,其中智能AI写作作为一项新兴技术,正逐渐改变着传统文案写作的方式。智能AI写作是利用人工智能技术来生成文案内容,其高效率和高质量的特点吸引了越来越多的用户。在这个信息爆炸…

第十届蓝桥杯省赛真题(C/C++大学B组)

试题 A: 组队 答案&#xff1a;490 试题 B: 年号字串 #include <bits/stdc.h> using namespace std;int main() {//26进制数 int n;cin>>n;string s "111";for(int i s.length() - 1;i >0;i--){s[i] A - 1 n % 26;n / 26;}cout<<s<<…

如何发现高危的PoC和EXP?漏洞检测方法 示例,实战应急实战举例,包括:SQLi、XSS、SSTI/ELI、文件哈希、SSRF、命令执行/命令注入等等

如何发现高危的PoC和EXP?漏洞检测方法 & 示例,实战应急实战举例,包括:SQLi、XSS、SSTI/ELI、文件哈希、SSRF、命令执行/命令注入等等。 在网络安全领域,发现高危的PoC(Proof of Concept)和EXP(Exploit)对于防范和应对潜在的安全威胁至关重要。以下是关于如何发现高…

leetcode 1766

leetcode 1766 题目 例子 思路 将边的关系&#xff0c;转化为树结构。 记录val 对应的id 列表。 记录是否遍历过节点。 记录id 和对应的深度。 使用dfs&#xff0c; 从根开始遍历。 代码实现 class Solution { private:vector<vector<int>> gcds;//val : the …

AliyunCTF 2024 - BadApple

文章目录 前言环境搭建漏洞分析漏洞利用参考 前言 本文首发于看雪论坛 https://bbs.kanxue.com/thread-281291.htm 依稀记得那晚被阿里CTF支配的恐惧&#xff0c;今年的阿里CTF笔者就做了一道签到PWN题&#xff0c;当时也是下定决心要学习 jsc pwn 然后复现这道 BadApple 题目…

github克隆报错:failed: The TLS connection was non-properly terminated.

github克隆gazebo_ros_control报错 fatal: unable to access https://github.com/ros-controls/gazebo_ros_control.git/: gnutls_handshake() failed: The TLS connection was non-properly terminated. sudo apt-get install ros-noetic-gazebo-ros-control git 克隆gazeb…

如何正确使用数字化仪前端信号调理?(一)

一、前言 板卡式的数字转换器和类似测量仪器&#xff0c;比如图1所示的德思特TS-M4i系列&#xff0c;都需要为各种各样的特性信号与内部模数转换器&#xff08;ADC&#xff09;的固定输入范围做匹配。 图1&#xff1a;德思特TS-M4i系列高速数字化仪&#xff0c;包括2或4通道版…

买入----套住----再研究,凤凰雪球

雪球研究告一段落&#xff0c;今天买入了。&#xff08;最后一张图&#xff09; 跟之前产品的主要区别是&#xff0c;有效月的票息会当月支付。 &#xff08;图二&#xff09;是4种不同的情况下&#xff0c;对应的收益情况。 --------------------------分界线----------------…

Kimichat的浏览器插件Kimi Copilot:一键总结网页内容

在阅读网页的时候&#xff0c;如果需要总结网页内容要点&#xff0c;可以把链接丢进Kimichat&#xff0c;让它总结。但是&#xff0c;这样稍微有些麻烦。Chrome浏览器现在已经有一个非官方的Kimichat插件&#xff1a; Kimi Copilot - 网页总结助手&#xff0c;可以用Kimi AI一键…

XILINX 10G PCS PMA IP核使用

文章目录 一、设计框图二、模块设计三、IP核配置四、上板验证五、总结 一、设计框图 关于GT高速接口的设计一贯作风&#xff0c;万兆以太网同样如此&#xff0c;只不过这里将复位逻辑和时钟逻辑放到了同一个文件ten_gig_eth_pcs_pma_0_shared_clock_and_reset当中。如果是从第…

基于一阶微分的图像增强-梯度法(不丢弃任何像素变化--信息的提取作用)

首先我大致说一下前一小节的内容&#xff1a;反锐化掩模与高提升滤波处理 图像的锐化方法&#xff0c;其实有很多。锐化的定义提升突变像素的灰度级&#xff0c;减少变化缓慢像素的灰度级。 为什么可以利用模糊图像来进行锐化呢&#xff1f;因为模糊图像的模糊位置通常都是原…

《前端防坑》- JS基础 - 你觉得Boolean(‘false‘) === false吗?

问题 你觉得Boolean(false) false吗&#xff0c; Boolean([]) false吗&#xff1f; 答案 Boolean(false) true, Boolean([]) true 验证 原因 Boolean 对象表示两个值&#xff1a;"true" 或 "false" 但是能使Boolean为flase的只有6种情况&#xff…

嵌入式单片机入职第二天-EEPROM与IIC

上午&#xff1a; 1.安装Jlink驱动&#xff0c;死活没反应&#xff0c;因为昨天才装完系统&#xff0c;领导让我装电脑主板驱动 领导方法进惠普官网通过查询电脑型号&#xff0c;里面几十个驱动搞得我眼花&#xff0c;领导告诉我进官网就去开会了&#xff0c;可能因为是外网&…

idea如何debug看springsecurity的过滤器顺序

idea如何debug看springsecurity的过滤器顺序 先配置一个Spring启动对象,后续需要根据这个对象来获取SpringSecurity的过滤器链 设置一个输出信息&#xff0c;需要在输出信息这里打上断点&#xff0c;才方便查看过滤器链 public static void main(String[] args) {//此时不…