Docker之ruoyi-vue项目部署

文章目录

    • 创建自定义网络
    • 安装redis
    • 安装mysql
    • 发布若依项目--后端
      • 使用Dockerfile自定义镜像
      • 运行容器
    • nginx

创建自定义网络

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

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

注意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.
可以参考该地址

安装redis

创建目录
mkdir -p /data/redis/{conf,data}
上传redis.conf文件到/data/redis/conf文件夹中

redis.conf文件不需要做任何更改
#bind 127.0.0.1改成为bind 0.0.0.0:充许任何主机访问
daemonize no :将原yes改成no :redis数据持久化
requirepass sasa:redis连接密码(可注释掉,连接的时候就不要输入密码了)

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 :让容器root用户拥有最高权限,否则可能会出现权限不够错误
#--restart=always:创建之后总是自启动
--privileged=true --restart=always \
--network net-ry redis \
#容器启动时执行的命令及读取的配置--启动redis
redis-server /etc/redis/redis.conf

安装mysql

创建文件夹
mkdir -p /data/mysql/{conf,data}
上传my.cnf文件到/data/mysql/conf文件夹中 (可以将my2.cnf修改好在Linux中重命名为my.cnf)
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 :让容器root用户拥有最高权限,否则可能会出现权限不够错误
#--restart=always:创建之后总是自启动
--privileged=true --restart=always \
#设置root的密码
-e MYSQL_ROOT_PASSWORD=sasa -p 3306:3306 \
#使用mysql5.7的镜像
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;

创建数据库
使用navcat新建数据库
新建连接–>ry数据库–>utf8编码–>utf8_general_ci排序规则–>运行sql文件

发布若依项目–后端

使用Dockerfile自定义镜像

切换到家目录
cd ~
mdkir ruoyi-admin
cd ruoyi-admin

编写Dockerfile文件内容
vi Dockerfile

#指定基础镜像
FROM anapsix/alpine-java:8_server-jre_unlimited
#维护者信息
MAINTAINER "donkee@vip.qq.com"
#应该使用copy,但是他不是特定格式,不会解压
#正常情况,复制当前目录中的项目到容器的opt目录,并重命名为app.jar
ADD ruoyi-admin.jar /opt/app.jar
#暴露8080端口
EXPOSE 8080
#再容器启动时执行以下命名,相当于执行后端服务--java -jar
ENTRYPOINT ["java","-jar","/opt/app.jar"]

上传ruoyi-admin.jar到Dockerfile文件所在目录
rz ruoyi-admin.jar
zking-admin为镜像名称,开始制作镜像
v1.0后面有一个==.==

docker build -t zking-admin:v1.0 .

没加会报错

DEPRECATED: The legacy builder is deprecated and will be removed in a future release.Install the buildx component to build images with BuildKit:https://docs.docker.com/go/buildx/
"docker build" requires exactly 1 argument.
See 'docker build --help'.
Usage:  docker build [OPTIONS] PATH | URL | -
Build an image from a Dockerfile
------------------------------------------------------------------------------------------------------------
DEPRECATED:遗留构建器已弃用,并将在将来的版本中删除。
安装builddx组件来使用BuildKit构建映像:
https://docs.docker.com/go/buildx/
“docker build”只需要1个参数。
参见“docker build—help”。用法:docker build [OPTIONS] PATH | URL | -从Dockerfile构建镜像

运行容器

docker run -itd --name ruoyi-admin --network net-ry -p 8080:8080 ruoyi-admin:v1.0
**报错:**因为虚拟机之前就安装过tomcat,所用对产生端口冲突
解决:
端口冲突,关闭Tomcatsystemctl stop tomcat
如果设置了自启,关闭自启systemctl disable tomcat
报错:Error response from daemon: pull access denied for zking-admin, repository does not exist or may require 'docker login': denied: requested access to the resource is denied.
**报错原因:**镜像没加版本号

查看后端日志,因为是在容器里面,所用先进容器,然后进入cd /home/ruoyi/logs
sys-error.log(错误日志) sys-info.log(运行日志) sys-user.log(用户日志)

nginx

创建目录
mkdir -p /data/nginx/{conf,html}
上传nginx.conf至/data/nginx/conf文件夹中
nginx.conf文件修改解释
在这里插入图片描述
运行启动容器

docker run -itd --name zking-nginx --network net-ry -p 80:80 \
-v /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /data/nginx/html:/usr/share/nginx/html \
--privileged=true --restart=always \
nginx

跟换目录
cd /data/nginx/html
上传dist.zip文件
rz dist.zip
解压
unzip dist.zip
验证
浏览器:IP地址
在这里插入图片描述

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

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

相关文章

Kubernetes(k8s):如何进行 Kubernetes 集群健康检查?

Kubernetes(k8s):如何进行 Kubernetes 集群健康检查? 一、节点健康检查1、使用 kubectl 查看节点状态2、查看节点详细信息3、检查节点资源使用情况 2、Pod 健康检查2.1、 使用 kubectl 查看 Pod 状态2.2、 查看特定 Pod 的详细信息…

解决MySQL幻读?可重复读隔离级别背后的工作原理

什么是当前读和快照读 当前读:又称为 "锁定读",它会读取记录的最新版本(也就是最新的提交结果),并对读取到的数据加锁,其它事务不能修改这些数据,直到当前事务提交或回滚。"sele…

基于深度学习的机场航拍小目标检测系统(网页版+YOLOv8/v7/v6/v5代码+训练数据集)

摘要:在本博客中介绍了基于YOLOv8/v7/v6/v5的机场航拍小目标检测系统。该系统的核心技术是采用YOLOv8,并整合了YOLOv7、YOLOv6、YOLOv5算法,从而进行性能指标的综合对比。我们详细介绍了国内外在机场航拍小目标检测领域的研究现状、数据集处理…

工艺品wordpress外贸主题

工艺品wordpress外贸主题 简约大气的wordpress外贸主题,适合做工艺品进出品外贸的公司官网使用。 https://www.jianzhanpress.com/?p5377

超市销售数据-python数据分析项目

Python数据分析项目-基于Python的销售数据分析项目 文章目录 Python数据分析项目-基于Python的销售数据分析项目项目介绍数据分析结果导出数据查阅 数据分析内容哪些类别比较畅销?哪些商品比较畅销?不同门店的销售额占比哪个时间段是超市的客流高封期?查看源数据类型计算本月…

【数据库系统工程师】软考2024年5月报名流程及注意事项

2024年5月软考数据库系统工程师报名入口: 中国计算机技术职业资格网(http://www.ruankao.org.cn/) 2024年软考报名时间暂未公布,考试时间上半年为5月25日到28日,下半年考试时间为11月9日到12日。不想错过考试最新消息…

门控循环单元(GRU)

概述 门控循环单元(Gated Recurrent Unit, GRU)由Junyoung Chung等人于2014年提出,原论文为《Empirical Evaluation of Gated Recurrent Neural Networks on Sequence Modeling》。GRU是循环神经网络(Recurrent Neural Network, …

PS从入门到精通视频各类教程整理全集,包含素材、作业等(7)复发

PS从入门到精通视频各类教程整理全集,包含素材、作业等 最新PS以及插件合集,可在我以往文章中找到 由于阿里云盘有分享次受限制和文件大小限制,今天先分享到这里,后续持续更新 PS敬伟01——90集等文件 https://www.alipan.com/s…

新兴势力展露头角? ERC-1111 协议能否开启下一个热潮

从 2024 年第一季度开始,加密资产市场迎来了新一轮狂热的上涨,比特币的价格突破了历史性的高点,为整个行业注入了强劲的动力。更为引人瞩目的是,NFT 市场正在经历一场革命性的变革,一些创新性的 NFT 协议开始崭露头角&…

1.Git是用来干嘛的

本文章学习于【GeekHour】一小时Git教程,来自bilibili Git就是一个文件管理系统,这样说吧,当多个人同时在操作一个文件的同时,很容易造成紊乱,git就是保证文件不紊乱产生的 包括集中式管理系统和分布式管理系统 听懂…

实验2:CLI的使用与IOS基本命令

1、实验目的 通过本实验可以掌握: CLI的各种工作模式个CLI各种编辑命令“?” 和【Tab】键使用方法IOS基本命令网络设备访问限制查看设备的相关信息 2、实验拓扑 CLI的使用与IOS基本命令使用拓扑如下图所示。 3、实验步骤 (1)CLI模式的切…

分享几个可以免费使用的GPT网站吧

1. ChatGAI ChatGAI是一个界面简洁的AI平台,提供App和网页版,每日均有免费使用机会。 2. ChatGPT 本网站向大家开放了ChatGPT 3.5和4.0版本的免费体验,特别适合新用户。每天都有免费次数,响应迅速,注册便捷&#xff0…

『Apisix系列』破局传统架构:探索新一代微服务体系下的API管理新范式与最佳实践

一、『Apisix安装部署』 🚀 1.1 手把手教你从零部署APISIX高性能API网关 二、『Apisix入门篇』 🚀 2.1 从零到一掌握Apache APISIX:架构解析与实战指南 三、『Apisix进阶篇』 🚀 3.1 动态负载均衡:APISIX的实战演练…

谷粒商城实战(008 缓存)

Java项目《谷粒商城》架构师级Java项目实战,对标阿里P6-P7,全网最强 总时长 104:45:00 共408P 此文章包含第151p-第p157的内容 简介 数据库承担落盘(持久化)工作 拿map做缓存 这种是本地缓存,会有一些问题 分布…

MATLAB 点云随机渲染赋色(51)

MATLAB 点云随机渲染赋色(51) 一、算法介绍二、算法实现1.代码2.效果总结一、算法介绍 为点云中的每个点随机赋予一种颜色,步骤和效果如图: 1、读取点云 (ply格式) 2、随机为每个点的RGB颜色字段赋值 3、保存结果 (ply格式) 二、算法实现 1.代码 代码如下(示例):…

输入url到页面显示过程的优化

浏览器架构 线程:操作系统能够进行运算调度的最小单位。 进程:操作系统最核心的就是进程,他是操作系统进行资源分配和调度的基本单位。 一个进程就是一个程序的运行实例。启动一个程序的时候,操作系统会为该程序创建一块内存&a…

Word的”交叉引用“和”插入题注“快捷键设置

Word的”交叉引用“和”插入题注“快捷键设置 在MSWord2021中,可以自定义设置快捷键。方法如下:文件-选项-自定义功能区-键盘快捷方式(自定义)。具体过程如图所示。 最后,按照上述流程将插入题注(Insert…

openwrt开发包含路由器基本功能的web问题记录

1.这里的扫描怎么实现的先找一些luci代码,在openwrt21版本后,luci用js替换了lua写后台,先找一些代码路径 在openrwt15这部分代码是在这个目录下 feeds/luci/modules/luci-mod-admin-full/luasrc/view/admin_network/wifi_join.htm 里面包含…

java:6 数组(3)

文章目录 14. 二维数组14.1 定义14.2 二维数组的使用14.3 练习 【老韩视频p175-】 14. 二维数组 14.1 定义 多维数组我们只介绍二维数组: 二维数组的应用场景:比如我们开发一个五子棋游戏,棋盘就是需要二维数组来表示。请用二维数组输出如下…

HarmonyOS 应用开发之非线性容器

非线性容器实现能快速查找的数据结构,其底层通过hash或者红黑树实现,包括HashMap、HashSet、TreeMap、TreeSet、LightWeightMap、LightWeightSet、PlainArray七种。非线性容器中的key及value的类型均满足ECMA标准。 HashMap HashMap 可用来存储具有关联…