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

环境准备: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-admin

2)编写Dockerfile文件内容
vim Dockerfile_ruoyi-admin

FROM 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/

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

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

相关文章

什么是过载

宇航员相关知识会涉及到过载,导弹相关知识也会涉及到过载,如导弹的过载加速度,什么是过载呢?博主从B站上看到一UP主讲的很好, 该up主视频链接: 过载是什么_哔哩哔哩_bilibili 内容截图如下:

vue+element ui实现表单组件的封装

效果图: 主要是使用vue elmentUi 的from的基础上进行封装 使用改组件,是需要自定义从父组件传入一下字段表单字段 export const topicTypeMainTaskEdit: any new Map([// 主任务可编辑状态[feasibleInstructions, // 督办件[{value: documentNum…

B端:别看分页你天天用,你未必能摸清分页门道,一文告诉你.

在B端系统中,分页的作用是在处理大量数据时,将数据分成多个页面进行展示,以提高系统的性能和用户体验。 分页可以有效减少单个页面加载的数据量,加快页面加载速度,减少服务器和客户端的压力,并且方便用户浏…

vue使用i18n

🎈个人主页:靓仔很忙i 💻B 站主页:👉B站👈 🎉欢迎 👍点赞✍评论⭐收藏 🤗收录专栏:前端 🤝希望本文对您有所裨益,如有不足之处&#x…

如何使用cobbler定制安装

cobbler批量安装 客户端安装 新建虚拟机从pxe启动,若出现以下界面则表示成功: uos9安装 rockylinux9安装: 切换镜像 [rootcjy ~]# umount /mnt [rootcjy ~]# mount /dev/cdrom /mnt 升级 [rootcjy ~]# cobbler signature update task sta…

【御控物联】JavaScript JSON结构转换(16):对象To数组——综合应用

文章目录 一、JSON结构转换是什么?二、术语解释三、案例之《JSON对象 To JSON数组》四、代码实现五、在线转换工具六、技术资料 一、JSON结构转换是什么? JSON结构转换指的是将一个JSON对象或JSON数组按照一定规则进行重组、筛选、映射或转换&#xff0…

Redis数据库常用命令和数据类型

文章目录 一、Redis数据库常用命令1、set/get2、keys3、exists4、del5、type6、rename6.1 重命名6.2 覆盖 7、renamenx8、dbsize9、密码设置10、密码验证11、查看密码12、取消密码13、Redis多数据库常用命令13.1 多数据库间切换13.2 多数据库间移动数据13.3 清除数据库数据 二、…

可视化大屏的行业应用(1):智慧生产和智能制造

可视化大屏在生产制造行业中具有重要的应用价值,主要表现在以下几个方面: 生产监控:可视化大屏可以实时显示生产线的运行状态和生产数据,包括设备运行状态、生产效率、产品质量等,帮助管理人员及时监控生产情况&#…

【新手适用】手把手教你从零开始实现一个基于Pytorch的卷积神经网络CNN三: 如何验证和测试模型

【新手适用】手把手教你从零开始实现一个基于Pytorch的卷积神经网络CNN二: 如何训练模型,内附详细损失、准确率、均值计算-CSDN博客 从零开始实现一个基于Pytorch的卷积神经网络 - 知乎 (zhihu.com) 1 初始化、导入模型和数据集 新建一个test.py文件&a…

Android的图片加载框架

Android的图片加载框架 为什么要使用图片加载框架?图片加载框架1. Universal Image Loader [https://github.com/nostra13/Android-Universal-Image-Loader](https://github.com/nostra13/Android-Universal-Image-Loader)2. Glide [https://muyangmin.github.io/gl…

SWM341系列SDRAM应用

SWM341系列SDRAM应用 1、不同的时钟频率下,SDRAM的初始化参数设置 现象:驱屏应用,显示一段时间后出现卡住的现象 分析:SDRAM的初始 化参数优化 主频150Mhz,建议配置CASL 3,TRFC ≥8。 主频100Mhz,ClkDiv可配置为1…

低压500kW 发电机组测试交流干式负载箱的工作方式

低压500kW发电机组测试交流干式负载箱是一种专门用于测试发电机组性能的设备,其主要功能是在发电机组运行过程中,通过模拟实际负载情况,对发电机组的输出功率、电压、电流等参数进行实时监测和调整,以确保发电机组在各种工况下的稳…

手写瀑布流

之前用vue-masonry实现瀑布流 <!DOCTYPE html> <html><head><meta http-equiv"content-type" content"text/html; charsetutf-8"><meta name"viewport" content"widthdevice-width,initial-scale1,maximum-sc…

算法——矩阵,被围绕的区域

. - 力扣&#xff08;LeetCode&#xff09; 最开始也是考虑使用dfs&#xff0c;对于矩阵中的每个点&#xff0c;如果能到达边界的O&#xff0c;则跳过继续dfs。否则如果上下左右四个方向都无法到达边界的O&#xff0c;则说明当前的无法到达&#xff0c;在一个set中记录他的行数…

AcWing刷题-游戏

游戏 DP l lambda: [int(x) for x in input().split()]n l()[0] w [0] while len(w) < n:w l()s [0] * (n 1) for i in range(1, n 1): s[i] s[i - 1] w[i]f [[0] * (n 1) for _ in range(n 1)]for i in range(1, n 1): f[i][i] w[i]for length in range(2, …

WordPress外贸建站Astra免费版教程指南(2024)

在WordPress的外贸建站主题中&#xff0c;有许多备受欢迎的主题&#xff0c;如Avada、Astra、Hello、Kadence等最佳WordPress外贸主题&#xff0c;它们都能满足建站需求并在市场上广受认可。然而&#xff0c;今天我要介绍的是一个不断颠覆建站人员思维的黑马——Astra主题。 原…

Java

1.学生和老师都会有work方法&#xff0c;学生的工作是学习&#xff0c;老师的工作是教书&#xff0c;我利用了一个接口来实现&#xff1b; 2.同时&#xff0c;老师和学生都是人&#xff0c;并且都有姓名&#xff0c;姓名&#xff0c;年龄和身高等特征&#xff0c;我用了一个继承…

Python基于PyQt5制作的一个上位机软件,用来控制一个Arduino四自由度机械臂

PyQt_Arduino 介绍 用PyQt5制作的一个上位机软件&#xff0c;用来控制一个Arduino四自由度机械臂。当然&#xff0c;为了扩展的需要&#xff0c;界面是按照六自由度机械臂制作的。 开发环境 系统&#xff1a; windows10 处理器: Intel Core™i7-8550U CPU 1.8GHz 2.00GHz …

服务器远程桌面连接不上怎么办?

随着互联网的发展和远程办公的兴起&#xff0c;服务器远程桌面连接成为了许多企业和个人不可或缺的工具。偶尔我们可能会碰到服务器远程桌面连接不上的情况&#xff0c;这时候我们需要找到解决办法&#xff0c;确保高效地远程访问服务器。 天联组网——突破远程连接障碍 在我们…

isaacgym 渲染黑屏

问题描述&#xff1a; isaacgym安装完IsaacGym_Preview_4_Package.tar.gz之后&#xff0c;运行python joint_monkey.py没有任何内容现实&#xff0c;但是终端还是正常输出信息。 环境是ubuntu22服务器&#xff0c;python3.8&#xff0c;nvidia Driver Version: 515.65.01 CUDA…