Docker之ruoyi-vue项目部署

文章目录

创建自定义网络

#搭建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连接密码(可注释掉,连接的时候就不要输入密码了)

bash 复制代码
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

csharp 复制代码
#启动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

csharp 复制代码
#指定基础镜像
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后面有一个==.==

c 复制代码
docker build -t zking-admin:v1.0 .

没加会报错

csharp 复制代码
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文件修改解释

运行启动容器

bash 复制代码
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地址

相关推荐
十一吖i7 分钟前
前端将后端返回的文件下载到本地
vue.js·elementplus
光影少年9 分钟前
vue2与vue3的全局通信插件,如何实现自定义的插件
前端·javascript·vue.js
景天科技苑15 分钟前
【云原生开发】K8S多集群资源管理平台架构设计
云原生·容器·kubernetes·k8s·云原生开发·k8s管理系统
wclass-zhengge1 小时前
K8S篇(基本介绍)
云原生·容器·kubernetes
颜淡慕潇1 小时前
【K8S问题系列 |1 】Kubernetes 中 NodePort 类型的 Service 无法访问【已解决】
后端·云原生·容器·kubernetes·问题解决
熊的猫1 小时前
JS 中的类型 & 类型判断 & 类型转换
前端·javascript·vue.js·chrome·react.js·前端框架·node.js
mosen8682 小时前
Uniapp去除顶部导航栏-小程序、H5、APP适用
vue.js·微信小程序·小程序·uni-app·uniapp
别拿曾经看以后~3 小时前
【el-form】记一例好用的el-input输入框回车调接口和el-button按钮防重点击
javascript·vue.js·elementui
川石课堂软件测试3 小时前
性能测试|docker容器下搭建JMeter+Grafana+Influxdb监控可视化平台
运维·javascript·深度学习·jmeter·docker·容器·grafana
Gavin_9154 小时前
【JavaScript】模块化开发
前端·javascript·vue.js