【Docker】docker部署前后端分离项目( 前:nginx + vue 后:springboot+ redis + mysql)

news2024/11/18 18:46:45

目录

  • 一.安装docker
  • 二.docker安装和配置nginx
    • 1.拉取nginx
    • 2.创建临时nginx容器
    • 3.从nginx容器复制 nginx.conf 文件到宿主机
    • 4.删除临时nginx容器
    • 5.启动真正的nginx容器
    • 6.查看是否挂载成功
    • 7.配置nginx.conf 和 vue的包放到指定位置
  • 三 docker安装部署redis
    • 1.安装redis
    • 2.部署redis
  • 四 docker安装部署mysql
    • 1.安装mysql
    • 2.部署mysql
    • 3.远程连接不上解决
      • ① 数据库远程权限没开
      • ② 防火墙问题
  • 五 docker 部署 springboot 项目

一.安装docker

如果你不是前后端分离的,那你直接看第五步就行。

linux安装docker

以下命令我使用的是普通用户和CentOS7.9的linux环境
注意: 以下步骤要是不通,那就可能是文件夹权限或者防火墙的事,也有可能是端口占用。

二.docker安装和配置nginx

1.拉取nginx

注意:如果你想写固定版本号,那你需要先去docker官网查询支不支持你写的版本号

$ sudo docker pull nginx:版本号   //如果不写版本号,那就拉取最新的nginx
$ sudo dokcer images              //查看你的镜像

在这里插入图片描述

2.创建临时nginx容器

dokcer常用命令

$ sudo docker run -d -p 4455:80 --name nginxtest nginx //运行nginx容器
-d                 //后台方式启动
-p 4455:80         //将容器的80端口映射到4455上
--name nginxtest   //自定义容器的名字

$ sudo docker ps     //查看运行中的容器
$ sudo docker ps -a  //查看所有的容器

在这里插入图片描述
测试nginx:你的虚拟机ip+映射端口号(注意:测试的电脑必须和你的虚拟机在一个网段,至少处于同一局域网),这个容器的目的就是为了让我们拿到 nginx.conf 文件
在这里插入图片描述

3.从nginx容器复制 nginx.conf 文件到宿主机

//提前在宿主机创建一个 nginx 目录然后在 nginx目录下创建一个html目录
// 将容器的nginx.conf文件复制到 宿主机的 /usr/nginx 目录下
$ sudo docker cp 容器id或容器名称:/etc/nginx/nginx.conf /usr/nginx 


$ sudo mkdir /usr/nginx          //创建nginx目录
$ sudo mkdir /usr/nginx/html     //在nginx目录下在创建html目录

4.删除临时nginx容器

$ sudo docker rm -f 容器id或容器名称

5.启动真正的nginx容器

sudo docker run -d  -p 3344:80 -v /usr/nginx/html:/usr/share/nginx/html -v /usr/nginx/nginx.conf:/etc/nginx/nginx.conf --name nginx1 nginx

-v 宿主机目录或文件:虚拟机目录或文件;  使两个目录或文件夹同步

在这里插入图片描述

6.查看是否挂载成功

$ sudo docker inspect 容器id或容器名称

在这里插入图片描述

7.配置nginx.conf 和 vue的包放到指定位置

首先打包之后,得到dist文件,然后里面包含 index.html 和 static 文件,放到你新建的 html文件夹下

在这里插入图片描述
配置nginx.conf
在这里插入图片描述

server{
     listen 80;               //nginx的端口号
     server_name localhost;   //访问的域名
   
   
   location / {
	root  /usr/share/nginx/html;          //访问你首页的地址
	try_files $uri $uri/ /index.html;
	index index.html index.htm;
     }
   }

完成配置之后,要重启nginx,然后直接 虚拟机的ip + 你映射的nginx端口 就能访问你的前端项目了。

三 docker安装部署redis

1.安装redis

$ sudo docker pull redis //拉取最新的redis

2.部署redis

sudo docker run -d  -p 6379:6379 --name myredis redis --requirepass "密码"  //运行redis镜像

测试redis是否启动成功
链接:redis可视化工具
提取码:0221

四 docker安装部署mysql

1.安装mysql

$ sudo docker pull mysql //拉取最新的mysql 

2.部署mysql

$ sudo docker run -d -p 3306:3306 --name mymysql -e MYSQL_ROOT_PASSWORD=root mysql //运行mysql镜像

3.远程连接不上解决

注意: 远程连接的机器必须和你虚拟机在一个局域网里面才行,或者一个网段也行。要不然就得使用VPN。

① 数据库远程权限没开

select host,user,password from user;   //查看用户表

在这里插入图片描述

如果没有上图的第二条信息,那你就需要新建一个用户,并且设置密码,然后刷新缓存,就可以连接了

 CREATE USER 'test'@'%' IDENTIFIED BY 'admin'; //新建一个名为 test并开启远程连接,密码为admin的用户
 flush privileges; //刷新权限

在这里插入图片描述

② 防火墙问题

CentOS 7 防火墙命令
 (1)systemctl  status firewalld.service       //查看防火墙的状态;
 (2)systemctl  start firewalld.service        //启动防火墙;
 (3)systemctl  stop firewalld.service         //关闭防火墙;
 (4)systemctl  restart firewalld.service      //重启防火墙;
 (5)systemctl  enable firewalld.service       //开机启动防火墙;
 (6)systemctl  disable firewalld.service      //开机禁用防火墙;
 (7)systemctl  is-enabled firewalld.service   //查看防火墙是否开机启动;

五 docker 部署 springboot 项目

docker 部署 springboot 项目

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

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

相关文章

如何计算结构体的大小?结构体内存对齐【C语言】

今天我们来讲讲结构体的大小如何来计算 其中涉及到一个结构体中的热门考点:结构体内存对齐 话不多说,开始学习! 要想计算结构体的大小,首先要了解结构体的对齐规则。 目录 结构体内存对齐规则 举例 为什么存在内存对齐? 如…

测试用例该怎么设计?—— 日常加更篇(上)

😏作者简介:博主是一位测试管理者,同时也是一名对外企业兼职讲师。 📡主页地址:【Austin_zhai】 🙆目的与景愿:旨在于能帮助更多的测试行业人员提升软硬技能,分享行业相关最新信息。…

火山引擎 DataTester 升级:降低产品上线风险,助力产品敏捷迭代

更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,并进入官方交流群 在企业竞争加剧的今天,精益开发和敏捷迭代已成为产品重要的竞争力。如何保障每一次 Feature 高效迭代与安全,如何快速实现面对不同用户的精细化运营…

Java设计模式——单例模式

目录 一、设计模式介绍 二、设计模式类型 三、单例设计模式介绍 单例设计模式八种方式 (一)饿汉式(静态常量) (二)饿汉式(静态代码块) (三) 懒汉式(线程…

【Flink系列】部署篇(二):独立部署高可用Flink集群实战

服务器操作系统:centos7本机操作系统:MacFlink version: 1.15JDK version: java11HA service: ZookeeperFile System: NFS 资源分配: iphostnamerole10.250.0.1main0JM10.250.0.2main1JM10.250.0.3main2JM10.250.0.4worker1TM10.250.0.5wor…

Spring Cloud Eureka的使用

Spring Cloud Eureka 🐻 一个服务注册与发现的组件 🐻🐻🐻🐻🐻🐻ZT😄🐻🐻🐻🐻🐻🐻🐻🐻…

SAP S/4HANA 采购订单处理操作详解

SAP S 4HANA Cloud 被 IDC 评为全球 SaaS 和云 ERP 系统领导者。SAP S4HANA Cloud是一套接近于零配置的系统,基于最佳业务实践的配置已经内嵌在标准版本中,可以让购买企业在第一时间内获得最全面的解决方案。本文就以其中最为常见的采购订单创建及处理流…

一页PPT自动生成短视频的研究

希望通过一些技术,将以前自己讲过的PPT转换成有解说的短视频,从而进行一些分发 旁白到语音 从文字转换成语音我们首先想到的就是TTS,这其中我也是用了各式各样的TTS,发现发音电子音非常强,听听起来很不舒服。后来发现…

Spring 事务和事务的传播机制

1.Spring 中事务的实现方式Spring 中的操作主要分为两类: 编程式事务 (了解)声明式事务编程式事务就是手写代码操作事务, 而声明式事务是利用注解来自动开启和提交事务. 并且编程式事务用几乎不怎么用. 这就好比汽车的手动挡和自动挡, 如果有足够的的钱, 大部分人应该都会选择自…

NPDP认证|如何实现产品的组合管理?

随着企业中研发项目类型和数量的增多,涉及的范围越来越宽广,内容越来越复杂,时效性也越来越强,传统的分散式的项目管理思想已经很难满足企业的需求。 为了使技术和资源能够得到有限的配置和利用,企业就需要把各种类型的研发项日进行有机的结合。 组合管理很重要吗? 答案是勿庸…

Vue知识点

Vue基础语法 插值操作 Mustache语法 可以直接写变量&#xff0c;也可以写简单的表达式 {{firstName lastName}}’ {{firstName lastName}} {{firstName}} {{lastName}} 其他指令使用 v-noce&#xff1a; <h2 v-once>{{message}}</h2> 某些情况下&#xff…

shell 脚本实现 k8s 集群环境下指定 ns 资源的 yaml 文件备份

shell 脚本实现 k8s 集群环境下指定 ns 资源的 yaml 文件备份需求说明功能实现shell 脚本实现shell 使用方式前置工具环境安装dump-k8s-yaml.sh 使用方式输入命令 bash ./dump-k8s-yaml.shdump-k8s-yaml.sh 应用举例dump-k8s-yaml.sh 输出日志信息参考文档需求说明 在基于 k8s…

【Java寒假打卡】Java基础-字符流

【Java寒假打卡】Java基础-字符流编码表字符串中的编码和解码问题字节流读取文本文件出现乱码的原因字符流读取中文的过程字符流写出数据字符流输出数据注意事项flush和close方法字符流读取数据案例-保存键盘录入的数据字符缓冲输入流字符缓冲输出流缓冲流的特有方法案例-读取文…

【算法】广度优先遍历 (BFS)

目录1.概述2.代码实现3.应用1.概述 &#xff08;1&#xff09;广度优先遍历 (Breadth First Search)&#xff0c;又称宽度优先遍历&#xff0c;是最简便的图的搜索算法之一。 &#xff08;2&#xff09;已知图 G (V, E) 和一个源顶点 start&#xff0c;宽度优先搜索以一种系…

让我用Python自制软件,看视频畅通无阻

前言 一个账号只能登录一台设备&#xff1f;涨价就涨价&#xff0c;至少还能借借朋友的&#xff0c;谁还没几个朋友&#xff0c;搞限制登录这一出&#xff0c;瞬间不稀罕了 这个年头谁还不会点技术了&#xff0c;直接拿python自制一个可以看视频的软件… 话不多说&#xff0…

终于弄懂了 非极大抑制 NMS

NMS的作用就是有效地剔除目标检测结果中多余的检测框&#xff0c;保留最合适的检测框。 以YOLOv5为例&#xff0c;yolov5模型的输入三个feature map的集合&#xff0c;加上batch的维度&#xff0c;也就是三维张量&#xff0c;即[batch&#xff0c;(p0∗p0p1∗p1p2∗p2)∗3&…

SWC步骤

纲要&#xff1a; SWC属于AUTOSAR的Component文件夹下&#xff0c;而Composition属于Composition文件夹下。 目录 1. Import "Data Type" and "Interface" information 2. Creat Software Component(SWC) 3. Create "Port" for this SWC 4.…

nexus raw 仓库代理(node-sass离线安装node-sass: Command failed)

问题背景 内网环境中使用 node 构建项目&#xff0c;项目中依赖了 node-sass&#xff0c;环境自动下载 node-saas 失败&#xff08;内网&#xff09;。 下面是构建 node-sass 的错误代码&#xff1a; [5/5] Building fresh packages... error /workspace/node_modules/node-…

nuxt概念

文章目录前言nuxt项目结构介绍网页导航文字显示&#xff08;商标&#xff09;package.jsonnuxt.config.js路由固定路由动态路由总结前言 首先了解下B2C模式&#xff0c;分前后台&#xff0c;后台一般为管理系统&#xff0c;不需要展示给过多的用户&#xff0c;而前台需要展示给…

2023年有哪些具备潜力的加密投资标的?

随着2022年一系列的黑天鹅事件&#xff08;Terra、Luna的暴雷、FTX、Three Arrows Capital等知名加密机构的破产&#xff09;&#xff0c;加密货币总市值已经从最高点的2.9万亿美元&#xff08;2021年的11月&#xff09;&#xff0c;下降到8500亿美元&#xff08;与2021年1月的…