前后端分离项目Docker部署指南(上)

目录

前言

一.搭建局域网

1.搭建net-ry局域网,用于部署若依项目

2.注意点

二.安装redis 

创建目录

将容器进行挂载

 ​编辑

测试是否安装成功

 ​编辑

三. 安装MySQL

创建文件夹

上传配置文件并且修改

.启动MySQL容器服务

充许远程连接

四.部署后端

使用Dockerfile自定义镜像

 上传ruoyi-admin.jar到Dockerfile_ruoyi-admin文件所在目录

ruoyi-admin为镜像名称,开始制作镜像 

运行容器

 ​编辑

导入数据

​编辑​编辑 


前言

随着软件开发的不断演进,前后端分离已成为一种常见的架构模式。这种架构模式使得前端专注于用户界面的呈现和交互,后端则专注于数据处理和业务逻辑。然而,随着项目复杂度的增加,如何高效地部署和管理这种架构成为了一个挑战。

Docker作为一种轻量级的容器化技术,为前后端分离项目的部署提供了强大的支持。它可以帮助我们快速构建、部署和管理应用程序,实现资源的隔离和环境的统一。通过使用Docker,我们可以更加简单、快速地部署前后端分离项目,并确保项目在不同环境中的一致性。

在这篇博客中,我们将探讨如何使用Docker部署前后端分离项目。我们将从项目架构的角度出发,介绍如何构建Docker镜像、编写Dockerfile、配置Docker Compose以及部署到生产环境等关键步骤。通过实际操作和案例分析,我们将帮助你掌握Docker部署前后端分离项目的最佳实践,并提升你的项目部署能力。

无论你是前端开发者、后端开发者还是运维工程师,相信这篇博客都会为你带来宝贵的经验和启示。让我们一起走进Docker的世界,探索前后端分离项目的部署之道吧!

一.搭建局域网

1.搭建net-ry局域网,用于部署若依项目

docker network create net-ry --subnet=172.68.0.0/16 --gateway=172.68.0.1

 查看搭建是否成功

docker network   ls 

2.注意点

注意:关闭宿主机的防火墙,否者容器内部的MySQL、redis等服务,外部访问不了;开放端口3306、6379端口也没用

查看防火墙状态

systemctl status firewalld

关闭防火墙

systemctl stop firewalld.service

 注意:关闭防火墙后必须重启docker,否者出现如下错误

docker: Error response from daemon: driver failed programming external connectivity on endpoint ruoyi-admin (399a34630e6ef8e4ed7cf20d46b9654c8d535d0fe44ceadebf8bd605d3da35b8):  (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 8080 -j DNAT --to-destination 172.68.0.4:8080 ! -i br-c34635070c6f: iptables: No chain/target/match by that name.

systemctl restart docker

二.安装redis 

创建目录

mkdir -p /data/redis/{conf,data}

 上传redis.conf文件到/data/redis/conf文件夹中

将容器进行挂载

docker run -itd --name zking-redis -p 6379:6379 \
-v /data/redis/conf/redis.conf:/etc/redis/redis.conf \
-v /data/redis/data:/data \
--privileged=true --restart=always \
--network net-ry redis \
redis-server /etc/redis/redis.conf

 

测试是否安装成功

进入容器

 docker  exec -it  zking-redis  /bin/bash

 

通过外部访问

 

三. 安装MySQL

创建文件夹

mkdir -p /data/mysql/{conf,data}

上传配置文件并且修改

mv my2.cnf  my.cnf

 

.启动MySQL容器服务

docker run -d --name zking-mysql --network net-ry  \
-v /data/mysql/conf/my.cnf:/etc/my.cnf \
-v /data/mysql/data:/var/lib/mysql \
--privileged=true --restart=always \
-e MYSQL_ROOT_PASSWORD=sasa -p 3306:3306 \
mysql/mysql-server:5.7

 

充许远程连接

# 进入容器
docker exec -it zking-mysql /bin/bash
# 登录
mysql -u root -p;
# 创建用户及授权
grant all privileges on *.* to root@'%' identified by 'sasa' with grant option;
# 刷新权限
flush privileges; 

第三方工具连接

 

四.部署后端

使用Dockerfile自定义镜像

FROM anapsix/alpine-java:8_server-jre_unlimited
MAINTAINER "donkee@vip.qq.com"
ADD ruoyi-admin.jar /opt/app.jar
EXPOSE 8080
ENTRYPOINT ["java","-jar","/opt/app.jar"]

 上传ruoyi-admin.jar到Dockerfile_ruoyi-admin文件所在目录

ruoyi-admin为镜像名称,开始制作镜像 

docker build -t ruoyi-admin .

运行容器

docker run -itd --name ruoyi-admin --network net-ry -p 8080:8080  ruoyi-admin

 

 

导入数据

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

linux 交叉编译curl(+openssl)

一、交叉编译openssl 参考博客:点击跳转 二、交叉编译curl 1、源码下载 地址:点击跳转 2、配置 CPPFLAGS"-I/home/gui/gui/openssl/build_arm/include" LDFLAGS"-L/home/gui/gui/openssl/build_arm/lib" LIBS"-ldl" \ …

Android之Handler原理解析与问题分享

一、Handler运行原理剖析 1.关系剖析图 如果把整个Handler交互看做一个工厂,Thread就是动力MessageQueue是履带Looper是转轴Loooper的loop方法就是开关,当调用loop方法时整个工厂开始循环工作,处理来自send和post提交到MessageQueue的消息&a…

使用Javassist 在android运行时生成类

序言 最近在写框架,有一个需求就是动态的生成一个类,然后查阅了相关文献,发现在android中动态生成一个类还挺麻烦。因次把一些内容分享出来,帮助大家少走弯路。 方案一 DexMaker DexMaker 是一个针对 Android 平台的库&#xf…

游戏引擎用什么语言开发上层应用

现在主流的游戏引擎包括: 1、Unity3D,C#语言,优点在于支持几乎所有平台 丹麦创立的一家公司,现已被微软收购。在中国市场占有率最高,也是社群很强大,一般解决方案也能在网上找到,教程丰富。物理…

.md转pdf

1、使用vscode安装Markdown PDF Markdown PDF 打开预览转pdf,同目录下自动生成pdf文件

稀碎从零算法笔记Day5-LeetCode:多数元素

题型:数组、计数、排序、STL函数、查找众数 链接:169. 多数元素 - 力扣(LeetCode) 来源:LeetCode 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 题目描述 给定一个大小为 n …

30分钟做200多张报表的金蝶云星空BI方案来了

曾经一张报表都要做好久,但现在,200多张的BI数据分析报表只需30分钟就能完成!BI智能数据分析的高效性在这一刻具象化了。奥威-金蝶云星空BI方案,一套注册、下载、执行,即见效果的标准化BI数据分析方案。 30分钟&#…

【S32DS报错】-7-程序进入HardFault_Handler,无法正常运行

【S32K3_MCAL从入门到精通】合集: S32K3_MCAL从入门到精通https://blog.csdn.net/qfmzhu/category_12519033.html 问题背景: 在S32DS IDE中使用PEmicro(Multilink ACP,Multilink Universal,Multilink FX&#xff09…

智能驾驶规划控制理论学习06-基于优化的规划方法之数值优化基础

目录 一、优化概念 1、一般优化问题 2、全局最优和局部最优 二、无约束优化 1、无约束优化概述 2、梯度方法 通用框架 线性搜索 回溯搜索 3、梯度下降 基本思想 实现流程 ​4、牛顿法 基本思想 实现流程 5、高斯牛顿法 6、LM法(Le…

java数据结构与算法刷题-----LeetCode637. 二叉树的层平均值

java数据结构与算法刷题目录(剑指Offer、LeetCode、ACM)-----主目录-----持续更新(进不去说明我没写完):https://blog.csdn.net/grd_java/article/details/123063846 文章目录 1. 广度优先2. 深度优先 解题思路:时间复杂度O(n)&am…

网络基础(二)

目录 再谈"协议" 序列化 JSON 网络版计算器 HTTP协议 认识URL urlencode和urldecode HTTP协议格式 telnet指令 stat函数 struct stat类型 stringstream类型 wget指令 HTTP的方法 HTTP的状态码 传输层 再谈端口号 端口号范围划分 认识知名端口号(W…

深度学习_16_权重衰退调整过拟合

所谓过拟合即模型复杂度较高,但用于训练数据集过于简单,最后导致模型将过多无用渣质作为学习对象 这个在上篇 深度学习_15_过拟合&欠拟合 已经详细介绍,以下便不再赘述。 上篇提到要想解决过拟合现象可以试着降低模型复杂度&#xff0c…

Python web框架fastapi中间件与CORS详细教学

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 所属专栏:Fastapi 景天的主页:景天科技苑 文章目录 fastapi中间件与CORS1、中间件1.创建中间件方法2.中间件里面添加响应头…

抖音视频评论批量采集软件|视频下载工具

《轻松搞定!视频评论批量采集软件,助您高效工作》 在短视频这个充满活力和创意的平台上,了解用户评论是了解市场和观众心声的重要途径之一。为了帮助您快速获取大量视频评论数据,我们推出了一款操作便捷、功能强大的软件&#xff…

第一弹:Flutter安装和配置

目标: 1)配置Flutter开发环境 2)创建第一个Flutter Demo项目 Flutter中文开发者网站: https://flutter.cn/ 一、配置Flutter开发环境 Flutter开发环境已经提供集成IDE开发环境,因此需要配置开发环境的时候&#xf…

【STM32】STM32学习笔记-读写内部FLASH 读取芯片ID(49)

00. 目录 文章目录 00. 目录01. FLASH概述02. 读写内部FLASH接线图03. 读写内部FLASH相关API04. 读写内部FLASH程序示例05. 读写芯片ID接线图06. 读写芯片ID程序示例07. 程序示例下载08. 附录 01. FLASH概述 STM32F10xxx内嵌的闪存存储器可以用于在线编程(ICP)或在程序中编程(…

Spark中读parquet文件是怎么实现的

背景 最近在整理了一下 spark对Parquet的写文件的过程,也是为了更好的理解和调优Spark相关的任务, 因为对于Spark来说,任何一个事情都不是独立的存在的,比如说parquet文件的rowgroup设置的大小对读写的影响,以及parqu…

数据删除

目录 数据删除 删除员工编号为 7369 的员工信息 删除若干个数据 删除公司中工资最高的员工 Oracle从入门到总裁:​​​​​​https://blog.csdn.net/weixin_67859959/article/details/135209645 数据删除 删除数据就是指删除不再需要的数据 delete from 表名称 [where 删…

Java架构之路-架构应全面了解的技术栈和工作域

有时候我在想这么简单简单的东西,怎么那么难以贯通。比如作为一个架构师可能涉及的不单单是技术架构,还包含了项目管理,一套完整的技术架构也就那么几个技术栈,只要花点心思,不断的往里面憨实,总会学的会&a…

huggingface学习|controlnet实战:云服务器使用StableDiffusionControlNetPipeline生成图像

ControlNet核心基础知识 文章目录 一、环境配置和安装需要使用的库二、准备数据及相关模型三、参照样例编写代码(一)导入相关库(二)准备数据(以知名画作《戴珍珠耳环的少女》为例)(三&#xff0…