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

相关推荐
Agome994 小时前
Docker之自定义jkd镜像上传阿里云
阿里云·docker·容器
一枚小小程序员哈4 小时前
基于Vue的个人博客网站的设计与实现/基于node.js的博客系统的设计与实现#express框架、vscode
vue.js·node.js·express
定栓4 小时前
vue3入门-v-model、ref和reactive讲解
前端·javascript·vue.js
无能百分百4 小时前
阿里云服务器ECS安装Docker(CentOS 7.x)
docker
LIUENG5 小时前
Vue3 响应式原理
前端·vue.js
wycode6 小时前
Vue2实践(3)之用component做一个动态表单(二)
前端·javascript·vue.js
wycode7 小时前
Vue2实践(2)之用component做一个动态表单(一)
前端·javascript·vue.js
第七种黄昏7 小时前
Vue3 中的 ref、模板引用和 defineExpose 详解
前端·javascript·vue.js
pepedd8648 小时前
还在开发vue2老项目吗?本文带你梳理vue版本区别
前端·vue.js·trae
前端缘梦8 小时前
深入理解 Vue 中的虚拟 DOM:原理与实战价值
前端·vue.js·面试