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地址

相关推荐
Gracemark11 小时前
高德地图-地图选择经纬度问题【使用输入提示-使用Autocomplete进行联想输入】(复盘)
vue.js
天下无贼12 小时前
【手写组件】 Vue3 + Uniapp 手写一个高颜值日历组件(含跨月补全+今日高亮+选中状态)
前端·vue.js
洋葱头_13 小时前
vue3项目不支持低版本的android,如何做兼容
前端·vue.js
奔跑的蜗牛ing13 小时前
Vue3 + Element Plus 输入框省略号插件:零侵入式全局解决方案
vue.js·typescript·前端工程化
容器魔方14 小时前
Bloomberg 正式加入 Karmada 用户组!
云原生·容器·云计算
最后一个农民工16 小时前
vue3实现仿豆包模版式智能输入框
前端·vue.js
艾小码19 小时前
Vue组件到底怎么定义?全局注册和局部注册,我踩过的坑你别再踩了!
前端·javascript·vue.js
muyun280019 小时前
Docker 下部署 Elasticsearch 8 并集成 Kibana 和 IK 分词器
elasticsearch·docker·容器
wusp199419 小时前
项目实战——“微商城”前后台【005】之前台项目首页编写
vue.js·vant·底部导航栏
Nazi620 小时前
k8s的dashboard
云原生·容器·kubernetes