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.mzph.cn/news/789670.shtml

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

相关文章

gateway应用(1)

1 简介 简单理解---业务服务的统一入口,方便实现,服务路由,安全,限流,过滤,黑白名单,证书加密解密,服务降级/熔断,灰度,等等 2 介绍 Predicate&#xff08…

AI技术创业有哪些机会?

AI技术创业有哪些机会? 目录 AI技术创业有哪些机会?1. 机器学习和数据分析平台:2. 智能客服和聊天机器人:3. 人脸识别和生物特征识别:4. 自动驾驶技术:5. 智能家居和物联网:6. 医疗诊断和健康管…

数据仓库——特殊类型的星型模式

数据仓库基础笔记思维导图已经整理完毕,完整连接为: 数据仓库基础知识笔记思维导图 特殊类型的星型模式 通过维度表示的事物通常可以按照类别或者类型细分。有时想要在维度表中记录的属性类型是多样的。 尽管类型相同,但是却存在很大差别。…

荣誉 | 人大金仓连续三年入选“金融信创优秀解决方案”

3月28日,由中国人民银行领导,中国金融电子化集团有限公司牵头组建的金融信创生态实验室发布“第三期金融信创优秀解决方案”,人大金仓新一代手机银行系统解决方案成功入选,这也是人大金仓金融行业解决方案连续第三年获得用户认可。…

LabVIEW齿轮箱噪声监测系统

LabVIEW齿轮箱噪声监测系统 齿轮箱作为机械设备的“心脏”,其健康状态对设备的性能有着重要的影响。传统的齿轮箱监测方法依赖于直接的振动信号分析,但这种方法不仅成本高昂,而且在安装和拆卸过程中可能对设备造成损害。针对这些问题&#x…

CMake解析

二 CMake解析 2.1 各种可用变量 CMake语法指定了许多变量,可用于帮助您在项目或源代码树中找到有用的目录。 其中一些包括: VariableInfoCMAKE_SOURCE_DIR根源代码目录,工程顶层目录。暂认为就是PROJECT_SOURCE_DIRCMAKE_CURRENT_SOURCE_DIR当前处理的 CMakeLists.txt 所在…

filetype: python中判断图像格式库imghdr替代库

引言 imghdr库是python中的一个内置库,用来判断图像原本格式的。自己一直有在用,不过近来看到这个库在python 3.13中会被移除。 自己感觉一直被python版本赶着走。这不找了好久,才找到一个替代库–filetype Python各个版本将要移除和可替代…

【Rust】——使用迭代器处理元素序列

💻博主现有专栏: C51单片机(STC89C516),c语言,c,离散数学,算法设计与分析,数据结构,Python,Java基础,MySQL,linux&#xf…

Kubernetes控制器(四)______StatefulSet

控制器介绍 StatefulSet: 是Kubernetes中用于管理有状态应用的控制器。与Deployment不同,StatefulSet用于部署和管理需要持久标识、有序部署和唯一网络标识的 Pod。典型的用例包括数据库、缓存和队列等有状态应用。(有状态服务:单…

分享几个好用的电商API接口(可测试)

以下是一些好用的电商API接口,这些接口都可以用于获取电商平台的商品、订单、物流等相关信息,并提供了测试功能以确保接口的稳定性和可用性: 请求示例,API接口接入Anzexi58 淘宝开放平台API:淘宝开放平台提供了丰富的…

Keil 警告解决 : warning: #870-D: invalid multibyte character sequence

说明:在Keil项目编译时出现了几个 warning: #870-D: 的警告,接下来分析解决这个警告。 注意:在尝试解决问题前一定要将整个工程打包成压缩文件备份,以防更改失败变文件成乱码。 1.警告内容 warning: #870-D: warning: #870-…

2024.2.27力扣每日一题——统计树中的合法路径数目

2024.2.27 题目来源我的题解方法一 埃氏筛深度优先遍历 题目来源 力扣每日一题;题序:2867 我的题解 方法一 埃氏筛深度优先遍历 分别以质数节点为根,用「深度优先搜索」的方式,递归搜索所有的非质数的子树,并求出所…

Android Monkey自动化测试

monkey一般用于压力测试,用户模拟用户事件 monkey 基本用法 adb shell monkey [参数] [随机事件数]monkey常用命令 -v:用于指定反馈信息级别,总共分三个等级-v -v -vadb shell mokey -v -v -v 100-s:用于指定伪随机数生成器的种…

CentOS7安装flink1.17完全分布式

前提条件 准备三台CenOS7机器,主机名称,例如:node2,node3,node4 三台机器安装好jdk8,通常情况下,flink需要结合hadoop处理大数据问题,建议先安装hadoop,可参考 hadoop安…

impnt只读,燕用,必填,提示词(占位符)属性分别是什么

readonly 属性规定输入字段为只读&#xff08;不能修改&#xff09; <input type"text" placeholder"点我啊" readonly/> disabled 属性规定输入字段是禁用的 <input type"text" placeholder"点我啊" disabled/> re…

XXLJob中GLUE模式实现在线编写java/shell/python/php/nodejs/powerShell---SpringCloud工作笔记202

1.起因: 之前就一直想实现类似的功能,今天总于找到有可以参考的东西了,这个思路可以帮助实现这种功能. 2.获得灵感 就是:我想实现通过在线编写代码,来扩展我们平台的能力,这样随着业务的扩展,不用我们每次都修改了代码,再去部署,这样就比较麻烦,今天偶尔发现,对于xxljob来说.有…

OSCP靶场--ProStore

OSCP靶场–ProStore 考点(node.js代码注入gdb-list源文件c语言命令执行) 1.nmap扫描 ## ┌──(root㉿kali)-[~/Desktop] └─# nmap 192.168.200.250 -sV -sC -Pn --min-rate 2500 -p- Starting Nmap 7.92 ( https://nmap.org ) at 2024-04-01 09:18 EDT Nmap scan report…

Stream2Graph论文翻译

Stream2Graph: Dynamic Knowledge Graph for Online Learning Applied in Large-scale Network Abstract 知识图谱(KG)是用于存储某个领域(医疗保健、金融、电子商务、ITOps等)中的知识的有价值的信息来源。大多数工业KG本质上是动态的&#xff0c;因为它们定期更新流数据(客…

Scala第十八章节(Iterable集合、Seq集合、Set集合、Map集合以及统计字符个数案例)

Scala第十八章节 章节目标 掌握Iterable集合相关内容.掌握Seq集合相关内容.掌握Set集合相关内容.掌握Map集合相关内容.掌握统计字符个数案例. 1. Iterable 1.1 概述 Iterable代表一个可以迭代的集合, 它继承了Traversable特质, 同时也是其他集合的父特质. 最重要的是, 它定…

git tag 恢复代码

在Git中&#xff0c;标签&#xff08;tag&#xff09;用于标记特定的提交&#xff0c;它们并不直接涉及恢复代码的过程。恢复代码通常意味着回退到某个历史提交或找回之前删除的文件。虽然标签可以帮助你定位到特定的提交&#xff0c;但恢复代码本身需要使用其他Git命令。 如果…