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

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

相关文章

【微信加人自动化】RPA机器人:人人都会实现的机器人

用上这个机器人,一定要心平气和,不要放肆,单号忍住控制在15个人以内(但悄悄的告诉你,可以切换账号呀) 这个加人机器人,人人都可以通过学习自己动手实现,不再局限于遥不可及的“黑科…

通俗易懂:volatile关键字在内存模型中起到什么作用?

在计算机编程语言中,尤其是在Java语言中,volatile关键字对于内存模型的影响至关重要,它主要用于解决多线程环境下的内存可见性和禁止指令重排序问题,以确保并发编程的正确性。以下是volatile关键字在Java内存模型(JMM&…

千川素材投放效果如何追踪:精准识别爆款、潜力、首发、优质素材

在数字营销和广告领域,素材投放的效果直接关乎广告的成功与否。为了在竞争激烈的市场中脱颖而出,广告主和广告从业者需要密切关注素材投放效果,并及时识别出不同类型的素材,如爆款、潜力、首发和优质素材。本文将详细探讨如何进行…

Vue实现SQL语句关键字高亮显示?

SQL关键字高亮 要在Vue中实现SQL语句中关键字的高亮显示&#xff0c;你可以使用类似的方法&#xff0c;但是你需要根据SQL语法的特点来解析并高亮显示关键字。以下是一个示例代码&#xff0c;演示了如何在Vue中实现SQL语句关键字的高亮显示。 <template><div><…

2020年天津市二级分类土地利用数据(矢量)

天津市&#xff0c;位于华北平原海河五大支流汇流处&#xff0c;东临渤海&#xff0c;北依燕山。地势以平原和洼地为主&#xff0c;北部有低山丘陵&#xff0c;海拔由北向南逐渐下降&#xff0c;地貌总轮廓为西北高而东南低。天津有山地、丘陵和平原三种地形&#xff0c;平原约…

世界名校计算机类院系研究机器人的部分列举

计算机院系研究机器人方向的国外高校 一、美国高校 1.卡耐基梅隆大学 计算机学院官网 CMU School of Computer Science 注&#xff1a;CMU的机器人研究所在计算机学院下面&#xff0c;该学院还有其他系 Robotics Institute Carnegie Mellon University : Robotics Educati…

346CK01 噪声源,1 GHz 至 50 GHz

346CK01 噪声源 1 GHz 至 50 GHz Keysight 346CK01 是您使用是德科技噪声系数解决方案处理高频应用的理想伴侣。 凭借其宽带优势&#xff08;1 GHz 至 50 GHz&#xff09;&#xff0c;它可以顶替不同频段的多个噪声源。 另外&#xff0c;它的 SWR 也很低&#xff0c;消除了…

python函数参数中独立星号*的作用

python函数中间有一个&#xff08;&#xff09;分隔&#xff0c;星号后面为*命名关键字参数&#xff0c;星号本身不是参数**。命名关键字参数&#xff0c;在函数调用时必须带参数名字进行调用。如下例子&#xff1a;

第十六章 Redies

一、Redies Remote Dictionary Service 内存存储&#xff0c;NoSQL。基于内存来存储数据。无需 IO&#xff0c;效率高。提供高可用方案。 哨兵模式&#xff0c;分布式数据存储。 1.1 Redis 基本特性 - 关系型数据与非关系型数据库对比。 - SQL > 1. 行存储&#xff0c;…

探索图数据处理的魅力:使用Spark GraphX解析图数据和应用图算法

导语&#xff1a;在当今数据驱动的世界中&#xff0c;图数据处理和分析变得越来越重要。本文将介绍如何使用Spark GraphX&#xff0c;一个强大的图计算库&#xff0c;来处理和分析图数据。通过详细的Java代码示例和模拟输出结果&#xff0c;你将了解如何创建图、执行图操作和应…

mysql修改用户权限

https://blog.csdn.net/anzhen0429/article/details/78296814

【python】深入探讨flask是如何预防CSRF攻击的

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

哲学家带你深♂入了解文件操作

目录 一、文件指针 二、文件的打开与关闭 三、顺序读写函数的介绍 四、文件的随机读写 1、fseek 2、ftell 3、rewind 总结 前言 c语言中的文件操作虽然不怎么常用但也是非常重要的知识&#xff0c;今天由本哲学家带大家深♂入了解c语言文件操作。 一、文件指针 每个被使用的文…

基于FPGA实现的自适应三速以太网

一、三速以太网 千兆以太网PHY芯片是适配百兆和十兆的&#xff0c;十兆就不管了&#xff0c;我们的设计只适应千兆和百兆。 根据上图&#xff0c;我们是可以获取当前主机网口的速率信息的。 always(posedge w_rxc_bufr) beginif(w_rec_valid d0) beginro_speed < w_rec_…

虚拟DOM和真实DOM的区别

虚拟DOM&#xff08;Virtual DOM&#xff09;、DOM&#xff08;Real DOM&#xff09;是前端开发中常用的两种概念。 什么是真实DOM&#xff1f; ​ 真实DOM是浏览器中实际存在的DOM结构&#xff0c;它由浏览器解析HTML生成&#xff0c;并且直接与浏览器交互。当页面中的数据发…

【scala】使用gradle和scala构建springboot程序

零、版本说明: springboot: 2.7.18 使用log4j2&#xff0c;不使用springboot自带的logback scala版本&#xff1a;2.11 jackson版本&#xff1a;2.16.0 一、依赖&#xff1a; buildscript {dependencies {// using spring-boot-maven-plugin as package toolclasspath("…

什么是数据湖

什么是数据湖 数据湖是目前比较热的一个概念,许多企业都在构建或者计划构建自己的数据湖。但是在计划构建数据湖之前,搞清楚什么是数据湖,明确一个数据湖项目的基本组成,进而设计数据湖的基本架构,对于数据湖的构建至关重要。关于什么是数据湖?有不同的定义。 Wikipedia…

北京WordPress建站公司

北京wordpress建站&#xff0c;就找北京wordpress建站公司 http://wordpress.zhanyes.com/beijing

【VSCode】解决远程配置jupyter notebook始终无法搜到kernel

问题 jupyter kernel一直无法选择&#xff0c;总是出现如下提示。反复点install/enable没有用处。 解决 首先确认Python Interpreter是否能正常选择。可能出现终端可以搜到conda env但vscode command palette中不显示的问题。如果不显示&#xff0c;尝试手动enable Python ex…

Oracle清理闪回日志

关于闪回日志的说明&#xff1a; 一旦关闭闪回&#xff0c;flashback recovery area中的闪回日志将自动全部删除 闪回日志在出现空间压力的情况下&#xff0c;oracle会自动删除闪回日志&#xff0c;否则有可能导致无法闪回到指定的时间点 参考文档&#xff1a; NOTE:305817.1…