docker--部署 (超详版) (五)

news/2024/5/18 7:25:37/文章来源:https://blog.csdn.net/m0_74229802/article/details/137155055

环境准备:docker,mysql,redis,镜像,nginx

把虚拟机打开,连接xshell,参考博客: https://blog.csdn.net/m0_74229802/article/details/136965820?spm=1001.2014.3001.5501

一,搭建局域网

1.1,搭建net-ry局域网,用于部署若以项目

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

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

systemctl status firewalld

# 注意2:关闭防火墙后必须重启docker,否者出现如下错误
docker: Error response from daemon: driver failed programming external connectivity on endpoint ruoyi-admin 

进行下一步

然后我们在重启docker

systemctl restart docker

二,安装redis

2.1,重新创建一个目录,也就是我们放redis的目录

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

 #上传redis.conf文件到/data/redis/conf文件夹中
# bind 0.0.0.0 充许任何主机访问

进入到data目录

cd /data/redis

在进入到redis目录的conf目录里

cd 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 

然后这样子

 ping一下,如果能显示pong,说明redis安装成功,我们也可以打开redis,输入ip地址即可

三,安装mysql

1,宝贝,你要先创建一个mysql的目录,在conf目录下面执行

[root@localhost conf]# mkdir -p /data/mysql/{conf,data}

# 2.上传my.cnf文件到/data/mysql/conf文件夹中 (可以将my2.cnf修改好在Linux中重命名为my.cnf),记住,一定要看清这个目录

mv my2.cnf my.cnf

# 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

进入到mysql容器

docker exec -it zking-mysql /bin/bash

 输入命令mysql -u root -p

密码是我们刚刚输入的sasa

创建用户及授权: 

grant all privileges on *.* to root@'%' identified by 'sasa' with grant option;

 刷新权限:

flush privileges; 

 数据库安装完成之后,记得去测试一些连接,看是否连接成功,连接成功之后然后再将数据库脚本导入即可

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

 四,ruoyi-admin服务

1,创建一个属于 ruoyi-admin的目录

 mkdir ruoyi-admin

# 1.构建Dockerfile镜像
1)切换到家目录
cd ~
mdkir ruoyi-admin
cd ruoyi-admin2)编写Dockerfile文件内容
vim Dockerfile_ruoyi-adminFROM 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"]3)上传ruoyi-admin.jar到Dockerfile_ruoyi-admin文件所在目录
4)ruoyi-admin为镜像名称,开始制作镜像
mv Dockerfile_ruoyi-admin Dockerfile
docker build -t ruoyi-admin .

 

五,nginx安装配置

 1,创建目录

mkdir -p /data/nginx/{conf,html}

2.上传nginx.conf至/data/nginx/conf文件夹中

3, 运行启动容器

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

启动容器:

docker run -itd --name n1 nginx

进入容器:

docker exec -it n1 bash

查看容器:

whereis nginx

配置文件位置:

/etc/nginx

前端项目发布位置:

/usr/share/nginx/html

六, 前端部署:

修改vue.config.js配置

  devServer: {host: '0.0.0.0',port: port,open: true,proxy: {// detail: https://cli.vuejs.org/config/#devserver-proxy[process.env.VUE_APP_BASE_API]: {//修改ruoyi-admin后台地址target: `http://ruoyi-admin:8080`,changeOrigin: true,pathRewrite: {['^' + process.env.VUE_APP_BASE_API]: ''}}},disableHostCheck: true},

# 安装依赖
npm install
# 本地开发 启动项目
npm run dev 

# 打包正式环境
npm run build:prod

# 打包预发布环境
npm run build:stage

将vue编译上传到容器宿主机/data/nginx/html中

#改变当前目录
cd /data/nginx/html
#上传
rz

#安装unzip工具
yum install -y unzip
#解压
unzip dist.zip

 总结:

我们一定要特别注意是否把包放到正确的目录

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

2,上传my.cnf文件到/data/mysql/conf文件夹中

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

4,上传dist文件到nginx目录的html里面,我们放进去的是一个压缩包,记得解压,然后在访问,如果说你没有把这个nginx放到合适的目录下面去,他会显示403,这一步操作是特别要注意的;

5,其次,你还是访问不了,那一定是你的防火墙未打开,记得去打开你的防火墙

systemctl status firewalld
systemctl restart firewalld

在浏览器访问自己的网址:192.168.137.136

补充:

> **镜像查询**
>
> * docker search 镜像
> * hub.docker.com 现不能访问
> * https://hub.axlinux.top/

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

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

相关文章

HCIP作业4

实验步骤: 第一步 给PC1和PC2和PC3配地址 第二步给R1到R5配置接口IP地址 [R1]int g0/0/0 [R1-GigabitEthernet0/0/0]ip ad 192.168.1.254 24 R1:[R1-GigabitEthernet0/0/0]int s4/0/0 [R1-Serial4/0/0]ip ad 15.1.1.1 24 [R1-Serial4/0/0]dis ip in…

Flutter 开发学习笔记(0):环境配置

文章目录 前言开发需求环境配置运行出现问题我运行也是解决了很久的问题镜像源设置为清华的镜像源(不知道有没有影响)使用JDK17,测试过JDK21和JDK11都不行手动下载flutter 对应的gradle添加阿里云代理安卓编译下载 运行成功! 前言…

基于Springboot的一站式家装服务管理系统(有报告)。Javaee项目,springboot项目。

演示视频: 基于Springboot的一站式家装服务管理系统(有报告)。Javaee项目,springboot项目。 项目介绍: 采用M(model)V(view)C(controller)三层体…

2024年MathorCup数学建模思路A题B题C题D题思路分享

文章目录 1 赛题思路2 比赛日期和时间3 组织机构4 建模常见问题类型4.1 分类问题4.2 优化问题4.3 预测问题4.4 评价问题 5 建模资料 1 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 2 比赛日期和时间 报名截止时间:2024…

css设置文字铺满盒子

<div>收货人</div>&#xff1a; <div>电话</div>&#xff1a; <div>省市区</div>&#xff1a; width: 100rpx;border: 1px solid rebeccapurple;display: inline-block;text-align-last: justify;

构建安全高效的用户登录系统:登录流程设计与Token验证详解

在当今数字化时代&#xff0c;用户登录系统是几乎所有在线服务的基础。然而&#xff0c;随着网络安全威胁的不断增加&#xff0c;设计一个安全可靠的登录系统变得至关重要。本文将深入探讨用户登录流程的设计原则以及Token验证的实现方式&#xff0c;带您了解如何构建安全高效的…

网络安全新视角:数据可视化的力量

在当今数字化时代&#xff0c;网络安全已成为各大企业乃至国家安全的重要组成部分。随着网络攻击的日益复杂和隐蔽&#xff0c;传统的网络安全防护措施已难以满足需求&#xff0c;急需新型的解决方案以增强网络防护能力。数据可视化技术&#xff0c;作为一种将复杂数据转换为图…

代码+视频,手动绘制logistic回归预测模型校准曲线(Calibration curve)(1)

校准曲线图表示的是预测值和实际值的差距&#xff0c;作为预测模型的重要部分&#xff0c;目前很多函数能绘制校准曲线。 一般分为两种&#xff0c;一种是通过Hosmer-Lemeshow检验&#xff0c;把P值分为10等分&#xff0c;求出每等分的预测值和实际值的差距. 另外一种是calibra…

基于Websocket的局域网聊天系统

1.1 研究背景及意义 本项目所对应领域的研究背景及意义[1]。新冠肺炎局域网通信发生以来&#xff0c;大数据、云计算、人工智能等新一代信息技术加速与交通、局域网通信、教育、金融等领域深度融合&#xff0c;让局域网通信防控的组织和执行更加高效&#xff0c;成为战“疫”的…

【三】EMQX 手动创建集群

EMQX 手动创建集群 简介 因为项目中使用到了emqx中间件&#xff0c;所以近期对中间件进行了进一步的研究&#xff0c;每次选用中间件我都会考虑可用性方案&#xff0c;如下是本地实践的记录。 一、部署 1、创建一个 Docker 网络&#xff0c;用于节点间通信。处于同一网络下的…

STM32F103通过labview上位机上传温湿度数据到OneNET物联网平台

资料下载地址&#xff1a;STM32F103通过labview上位机上传温湿度数据到OneNET物联网平台 本实验通过两个STM32单片机设备分别测量室内外的温湿度&#xff0c;并把数据发送到上位机上传到ONENET物联网平台。 大体数据传输流程如下&#xff1a; 首先是注册OneNET平台账号&#…

【面试题】RocketMQ怎么处理消息积压?

如图,消息积压主要是因为&#xff0c;消费能力不足&#xff1a; 在RocketMQ中&#xff0c;处理消息积压的方法可以采取以下几种策略&#xff1a; 增加消费者数量&#xff1a;可以通过增加消费者数量来提高消息的消费速度。通过增加消费者实例或者消费者组的数量&#xff0c;可…

新网站秒收录技术,新网站百度收录时间

在建立新网站后&#xff0c;让它尽快被搜索引擎收录是网站主最为关注的事情之一。百度作为中国最大的搜索引擎&#xff0c;网站被其快速收录对于增加曝光和流量至关重要。本文将介绍一些新网站秒收录技术&#xff0c;以及一般情况下新网站被百度收录需要的时间。 新网站秒收录技…

Android视角看鸿蒙第十课-鸿蒙的布局之线性布局

Android视角看鸿蒙第十课-鸿蒙的布局之线性布局 导读 这篇文章开始&#xff0c;依次学习鸿蒙的八大布局&#xff0c;这是第一篇&#xff0c;所以顺带也会聊聊通用属性。 文档地址 文档地址 如何定义一个线性布局 Android中是使用LinearLayout来构建线性布局的&#xff0c…

Swift 从获取所有 NSObject 对象聊起:ObjC、汇编语言以及底层方法调用链(五)

概览 我们在上一篇 Swift 从获取所有 NSObject 对象聊起:ObjC、汇编语言以及底层方法调用链(四)博文中“一头扎入”系统底层,从汇编语言的角度详细介绍了 iOS 运行时(Runtime)方法调用栈的跟踪、以及如何恣意更改方法调用链走向等理论知识。 “纸上来得终觉浅,绝知此…

C++多态的一些理解

C多态的一些理解 多态的概念 什么是多态&#xff1f;多态是C的三大特性之一。简单来说就是用一种接口&#xff08;函数&#xff09;来实现多种不同的功能。当我们调用同一个函数的时候&#xff0c;根据业务需要&#xff0c;会执行不同的功能&#xff0c;产生不同的效果。 为…

大创项目推荐 深度学习 opencv python 实现中国交通标志识别

文章目录 0 前言1 yolov5实现中国交通标志检测2.算法原理2.1 算法简介2.2网络架构2.3 关键代码 3 数据集处理3.1 VOC格式介绍3.2 将中国交通标志检测数据集CCTSDB数据转换成VOC数据格式3.3 手动标注数据集 4 模型训练5 实现效果5.1 视频效果 6 最后 0 前言 &#x1f525; 优质…

VSCode在文件生成添加作者,创建时间、最后编辑人和最后编辑时间等信息

一、安装插件 我使用的是 korofileheader 二、配置文件 左下角点击设置图标—设置—输入"ext:obkoro1.korofileheader"—点击"在setting.json中编辑" 进入后会自动定位到你添加信息的地方 "Author": "tom", "Date": "…

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

PS从入门到精通视频各类教程整理全集&#xff0c;包含素材、作业等 最新PS以及插件合集&#xff0c;可在我以往文章中找到 由于阿里云盘有分享次受限制和文件大小限制&#xff0c;今天先分享到这里&#xff0c;后续持续更新 初寒调色案例及练习图 等文件 https://www.alipan.…

JimuReport积木报表 v1.7.4 正式版本发布,免费的JAVA报表工具

项目介绍 一款免费的数据可视化报表&#xff0c;含报表和大屏设计&#xff0c;像搭建积木一样在线设计报表&#xff01;功能涵盖&#xff0c;数据报表、打印设计、图表报表、大屏设计等&#xff01; Web 版报表设计器&#xff0c;类似于excel操作风格&#xff0c;通过拖拽完成报…