用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.hqwc.cn/news/511417.html

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

相关文章

Elasticsearch:向量相似度计算 - 可笑的速度

作者:Chris Hegarty 任何向量数据库的核心都是距离函数,它确定两个向量的接近程度。 这些距离函数在索引和搜索期间执行多次。 当合并段或在图表中导航最近邻居时,大部分执行时间都花在比较向量的相似性上。 对这些距离函数进行微观优化是值…

鸿蒙实战开发:【SIM卡管理】

概述 本示例展示了电话服务中SIM卡相关功能,包含SIM卡的服务提供商、ISO国家码、归属PLMN号信息,以及默认语音卡功能。 样例展示 基础信息 介绍 本示例使用sim相关接口,展示了电话服务中SIM卡相关功能,包含SIM卡的服务提供商、…

力扣每日一题 用栈实现队列

Problem: 232. 用栈实现队列 文章目录 思路复杂度💖 朴素版💖 优化版 思路 👨‍🏫 路飞题解 复杂度 时间复杂度: 添加时间复杂度, 示例: O ( n ) O(n) O(n) 空间复杂度: 添加空间复杂度, 示例: O ( …

Qt+FFmpeg+opengl从零制作视频播放器-1.项目介绍

1.简介 学习音视频开发,首先从做一款播放器开始是比较合理的,每一章节,我都会将源码贴在最后,此专栏你将学习到以下内容: 1)音视频的解封装、解码; 2)Qtopengl如何渲染视频&#…

sql单表运用11.3

一、进入数据库操作界面 1、mysql -u root -p 敲回车 ,输入密码 ,进入数据库操作界面 2、show databases 查看所有的数据(如果没有数据库:创建数据库 create database 库名称) 3、use 数据库名 使…

IDEA中Maven无法下载jar包问题解决

在项目中经常会遇到jar包无法下载的问题,可以根据以下几种方法进行排查。 1. 排查网络连接 网络连接失败,会导致远程访问Maven仓库失败,所以应确保网络连接正常。 2. 排查Maven的配置 Maven配置文件(settings.xml)…

交友盲盒系统PHP开源的盲盒源码

源码介绍: 交友盲盒系统是一款基于PHP开发的开源免费盲盒系统,旨在为用户提供一个充满乐趣和惊喜的社交体验。该系统具有丰富的功能和灵活的扩展性,可以轻松地满足各种线上交友、抽奖活动等场景的需求。 安装说明: PHP版本&…

基于springboot+vue线上教育平台管理系统项目【项目源码+论文说明】计算机毕业设计

基于springboot实现线上教育平台管理系统演示 摘要 本文讲述了使用SSM框架及My Sql数据库技术开发的线上教育网站的设计与实现。本系统是一个可以让学生进行在线学习的网站,众所周知,计算机专业的难度是比较高的,如果只通过在课堂上的学习&a…

【性能测试】Jmeter性能压测-阶梯式/波浪式场景总结(详细)

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 1、阶梯式场景&am…

docker 安装 portainer

小编给友友们总结了一下 Portainer 的好处以下 Portainer是Docker的图形化管理工具,提供状态显示面板、应用模板快速部署、容器镜像网络数据卷的基本操作(包括上传下载镜像,创建容器等操作)、事件日志显示、容器控制台操作、Swar…

LiveGBS流媒体平台GB/T28181功能-集中录像存储前端设备录像回看解决方案设备录像|云端录像|实时录像说明

LiveGBS集中录像存储前端设备录像回看解决方案设备录像|云端录像|实时录像说明 1、平台概述2、视频录像2.1、设备录像2.1.1、存储位置2.1.1.1、下级硬件设备2.1.1.2、下级国标平台 2.1.2、页面操作2.1.2.1、国标设备2.1.2.1.1、查看通道2.1.2.1.1.1、设备录像 2.1.2.1.2、配置中…

VS2022连接数据库以及常用的连接函数

下面是如何配置以及设置VS2022连接数据库 第一步:打开mysql的安装目录,默认安装目录如下:C:\Program Files\MySQL\MySQL Server 8.0,确认 lib 目录和include 目录是否存在。 第二步:打开VS2019,新建一个空工程,控制台…