用docker部署后端项目

一、搭建局域网

1.1、介绍前后端项目搭建

需要4台服务器,在同一个局域网中

1.2、操作

# 搭建net-ry局域网,用于部署若依项目  net-ry:名字
docker network create net-ry --subnet=172.68.0.0/16 --gateway=172.68.0.1#查看
docker network ls

 

能不能访问分为2种情况:

 一、如果项目部署完上线了,外部不能访问内部

二、部署的时候是应该能访问的,需要看Mysql等是否安装好,防火墙应该关闭,来调试问题

#查看防火墙状态
systemctl status firewalld#关闭防火墙
systemctl stop firewalld#启动docker
systemctl restart docker

 

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

# 注意2:关闭防火墙后必须重启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.

参考链接:https://blog.csdn.net/xiegongmiao/article/details/128409967

二、安装redis

#创建两个目录
mkdir -p /data/redis/{conf,data}#
cd /data/redis/llcd  conf

进入刚刚创建的conf目录,上传文件

 #上传redis.conf文件到/data/redis/conf文件夹中
# bind 0.0.0.0 充许任何主机访问
# daemonize no  因为用的是容器,Redis装在容器里面,不影响输入命令
# requirepass sasa   用户密码sasa

 redis.conf修改

1. 允许redis外地连接 


#bind 127.0.0.1改成为
bind 0.0.0.0
 

2. 开启redis验证(可选)
requirepass sasa
 

3. 开启redis数据持久化(可选)
appendonly yes

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 

id启动       容器不进入

zking-redis     名字

-p 6379:6379 \    映射端口
-v    挂载
-v /data/redis/data:/data \      缓存数据
--privileged=true --restart=always \   给最高权限

1. --privileged=true :让容器root用户拥有最高权限,否则可能会出现权限不够错误

2. redis-server /etc/redis/redis.conf:容器启动时执行的命令及读取的配置

3. redis-6.2.6.tar.gz压缩包中找到redis.conf官方配置文件

4. 在hub.docker.com中找到启动redis方式

测试

#进入容器
docker exec -it zking-redis /bin/bashroot@ec98cd3af83e:/data#  whereis redis-cli
redis-cli: /usr/local/bin/redis-cli
root@ec98cd3af83e:/data# cd /usr/local/bin
root@ec98cd3af83e:/usr/local/bin# ls
docker-entrypoint.sh  redis-benchmark  redis-check-rdb  redis-sentinel
gosu                  redis-check-aof  redis-cli        redis-server
root@ec98cd3af83e:/usr/local/bin# redis-cli
127.0.0.1:6379> ping
PONG
127.0.0.1:6379>

三、安装Mysql

#退出程序
exit#退出容器
Ctrl+P+Q# 1.创建文件夹
mkdir -p /data/mysql/{conf,data}


#进入conf
cd  /data/mysql/conf/# 2.上传my.cnf文件到/data/mysql/conf文件夹中 (可以将my2.cnf修改好在Linux中重命名为my.cnf)
mv my2.cnf my.cnf

  1. 修改官方my.cnf

     #运行mysql5.7,注意有单独的mysql镜像docker run --name=mysql1 -d mysql/mysql-server:5.7#进入容器查看/etc/my.cnf文件,修改my.cnf文件,让其支持中文
  2. 查看mysql数据保存位置

    cd /var/lib/mysql> 
    
  3. 1. 设置密码

     -e MYSQL_ROOT_PASSWORD=sasa:设置root的密码
     

3.启动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 ps

远程连接


# 进入容器
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; 

 注意:0- 1-工具原因,复制进去记得删除

工具测试

四、部署后端服务

4.1、创建数据库

运行sql文件 

4.2、使用Dockerfile自定义镜像

# 1.构建Dockerfile镜像
1)切换到家目录
cd ~#新建文件夹
mkdir ruoyi-admin#切进去
cd ruoyi-admin2)上传ruoyi-admin.jar到Dockerfile_ruoyi-admin文件所在目录

 

#重命名
mv Dockerfile_ruoyi-admin Dockerfile4)ruoyi-admin为镜像名称,开始制作镜像
docker build -t ruoyi-admin .

测试

docker images#运行容器
docker run -itd --name ruoyi-admin --network net-ry -p 80                                                                              80:8080  ruoyi-admindocker ps#进入容器
docker exec -it ruoyi-admin /bin/bash#查看日志
cd /home/ruoyi/logs/ls -l

测试

 

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

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

相关文章

Git 安全远程访问:SSH 密钥对生成、添加和连接步骤解析

使用 SSH 密钥对的 Git 安全远程访问:生成、添加和连接 SSH(Secure Shell)是一种用于安全远程访问的协议,它提供了加密通信和身份验证机制。在使用 SSH 连接到远程 Git 存储库时,您可以使用 SSH 密钥对来确保安全性。…

3d模型合并后一片漆黑是什么原因,怎么解决---模大狮模型网

当合并多个3D模型后,发现整个合并后的模型显示为一片漆黑通常是由以下几个可能的原因导致的: 材质设置问题:合并后的模型可能存在材质设置错误,导致模型无法正确显示。检查每个模型的材质属性,确保其正确设置&#xff…

老隋蓝海项目有哪些?能赚钱吗?

在创业的海洋中,每个人都渴望找到那片属于自己的“蓝海”,而“老隋蓝海项目”便是许多人心中的那片未知海域。那么,老隋蓝海项目究竟是指什么?它们又能否成为创业者的新财富之源? 蓝海项目的定义 我们要明白,蓝海项目通常指的是…

【漏洞复现】某厂商明御WEB应用防火墙任意用户登录漏洞

Nx01 产品简介 安恒明御WEB应用防火墙(简称WAF)是杭州安恒信息技术股份有限公司自主研发的一款专业应用安全防护产品,专注于为网站、APP等Web业务系统提供安全防护。 Nx02 漏洞描述 安恒明御WEB应用防火墙report.php文件存在硬编码设置的Con…

yolov7添加spd-conv注意力机制

一、spd-conv是什么? SPD-Conv(Symmetric Positive Definite Convolution)是一种新颖的卷积操作,它主要应用于处理对称正定矩阵(SPD)数据。在传统的卷积神经网络(CNN)中,…

人工智能_大模型013_AIGC生成式模型的增强检索_RAG知识补充检索_补充私域和实时场景知识_关键字检索增强---人工智能工作笔记0149

什么是RAG,RAG的意思就是,如果一套生成式AIGC大模型,你昨天训练了以后,那么今天的知识,还没有给他进行训练,那么回答的时候,他就会遗漏今天的知识,那么我们就可以通过检索的手段,把今天的知识,检索出来,然后补充道prompt中,给这个大模型.让他参考,这样就包含了今天的知识相当于…

CY8C42(1.PSoC4 Pioneer Kit开箱及基本使用)

1.开箱 最近了解到赛普拉斯有一种芯片,属于PSoC系列,与传统MCU不同,有点类似跨界芯片,于是就买来玩玩了,老实说用完还是很特别的,因为我没有用过FPGA,不确定是不是FPGA的开发流程(有…

怎样理解vue2和vue3里的双向数据绑定

在 Vue.js 中,双向数据绑定意味着当数据变化时,视图会自动更新;反之,当用户通过视图交互导致数据变化时,数据本身也会被更新。这种机制极大地简化了用户界面和数据之间的同步过程。 1. Vue2的实现 Vue2使用的是Objec…

MySQL的事务与隔离级别

1. 什么是事务? 数据库中的事务是指对数据库执行一批操作,而这些操作最终要么全部执行成功,要么全部失败,不会存在部分成功的情况。这个时候就需要用到事务。 最经典的例子就是转账,你要给朋友小白转 1000 块钱&…

一代传奇宗庆后:把员工宠成上帝

作者:积溪 琥珀酒研社快评: 梅子真是哭了 一代传奇就此陨落 咱们又少了一个良心企业家 2月25日10时30分 娃哈哈集团创始人、董事长宗庆后 在杭州逝世,享年79岁 在过去一个多月的病危期间 他的病房里最显眼的 不是呼吸机、检测仪 而…

智慧城市中的公共服务创新:让城市生活更便捷

目录 一、引言 二、智慧城市公共服务创新的实践 1、智慧交通系统 2、智慧医疗服务 3、智慧教育系统 4、智慧能源管理 三、智慧城市公共服务创新的挑战 四、智慧城市公共服务创新的前景 五、结论 一、引言 随着信息技术的迅猛发展,智慧城市已成为现代城市发…

技术总结: PPT绘图

目录 写在前面参考文档技巧总结PPT中元素的连接立方体调整厚度调整图形中的文本3D 图片调整渐变中的颜色 写在前面 能绘制好一个好看的示意图非常重要, 在科研和工作中好的示意图能精准表达出自己的想法, 减少沟通的成本, 可视化的呈现也可以加强自身对系统的理解, 时间很久后…

分分钟搞定JSON解析

json 库能够解析字符串或文本中的 JSON 内容。 该库将 JSON 解析为 Python 字典或列表,也能将 Python 字典或列表转换为 JSON 字符串。 解析 JSON 如下的 JSON 格式的字符串: json_string {"first_name": "Guido", "last_na…

【Web】速谈FastJson反序列化中TemplatesImpl的利用

目录 简要原理分析 exp 前文:【Web】关于FastJson反序列化开始前的那些前置知识 简要原理分析 众所周知TemplatesImpl的利用链是这样的: TemplatesImpl#getOutputProperties() -> TemplatesImpl#newTransformer() -> TemplatesImpl#getTransl…

瑞芯微RK3588 C++部署Yolov8检测和分割模型

最近这一个月在研究国产瑞芯微板子上部署yolov8的检测和分割模型,踩了很多坑,记录一下部署的过程和遇到的一些问题: 1 环境搭建 需要的环境和代码主要包括: (1)rknn-toolkit2-1.5.2:工具链&am…

微服务day04-基于Feign的远程调用

一.Feign的认识 是http客户端,因为使用RestTemplate存在一些问题:代码可读性差,参数配置费事,不够优雅… String url"http://userservice/user/"order.getUserId(); User userrestTemplate.getForObject(url,User.cla…

01.23 校招 实习 内推 面经

绿*泡*泡VX: neituijunsir 交流*裙 ,内推/实习/校招汇总表格 1、蔚来24届实习招聘特辑 | 软件&算法类(内推) 蔚来24届实习招聘特辑 | 软件&算法类(内推) 2、校招 | 普天科技2024校园招聘 校招…

初始计算机组成原理

1.初始计算机组成原理 本人相关文章:Linux之计算机概论 声明:大部分图片均来自网络,侵删 一个完整的计算机系统包括硬件子系统和软件子系统两大部分。 组成一台计算机的物理设备的总称叫做计算机硬件子系统,是看得见摸得着的实体,是计算机工…

华工的各类型PPT模板

华工的各类型PPT模板,包括原创的PPT及改良内容的PPT,适合科研/比赛/组会汇报等 前言各种毕业答辩夏令营答辩复试答辩奖学金答辩比赛/项目答辩组会汇报 前言 设计不易,排版不易,内容编排不易 待更新项目1 原创声明:不经…

【论文阅读】(2006)Dual-Optimal Inequalities for Stabilized Column Generation

文章目录 摘要一、介绍二、对偶最优不等式(Dual-Optimal Inequalities)三、确定P的最优原始解四、二元切割下料问题4.1 约束聚合4.2 相等约束4.3 计算结果 五、切割下料问题5.1 计算结果 六、三元组的深度对偶最优不等式(Deep Dual-Optimal I…