Docker之ruoyi-vue项目部署

本文详细介绍了如何在Docker中创建自定义网络,安装并配置Redis和MySQL,发布若依项目(后端)使用Dockerfile,以及部署Nginx。涉及网络设置、防火墙管理、文件映射和权限调整等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

创建自定义网络

#搭建net-ry局域网,用于部署若依项目
docker network create net-ry --subnet=172.68.0.0/16 --gateway=172.68.0.1
查看网络docker network ls

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

执行以下命令–并用redis连接工具进行测试

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

执行以下内容

#启动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数据库
新建连接–>ry数据库–>utf8编码–>utf8_general_ci排序规则–>运行sql文件

发布若依项目–后端

使用Dockerfile自定义镜像

切换到家目录

cd ~
mkdir ruoyi-admin
cd ruoyi-admin

编写Dockerfile文件内容

vi Dockerfile
#指定基础镜像
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后面有一个**.**

docker build -t zking-admin:v1.0 .

没加会报错

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文件修改解释
在这里插入图片描述
运行启动容器

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地址
在这里插入图片描述

对于Vue.js项目Docker部署,你可以按照以下步骤进行操作: 1. 创建Dockerfile:在项目根目录下创建一个名为"Dockerfile"的文件,并添加以下内容: ``` # 基础镜像 FROM node:14.15.4 as build-stage # 设置工作目录 WORKDIR /app # 复制所有文件到工作目录 COPY . . # 安装依赖并构建项目 RUN npm install RUN npm run build # 运行时镜像 FROM nginx:1.19.6 # 将构建好的项目复制到Nginx的默认静态文件目录下 COPY --from=build-stage /app/dist /usr/share/nginx/html # 更新Nginx配置,使其支持Vue.js的路由模式 RUN rm /etc/nginx/conf.d/default.conf COPY nginx.conf /etc/nginx/conf.d # 暴露容器的80端口 EXPOSE 80 # 启动Nginx CMD ["nginx", "-g", "daemon off;"] ``` 2. 创建Nginx配置文件:在与Dockerfile同级的位置,创建一个名为"nginx.conf"的文件,并添加以下内容: ``` server { listen 80; server_name localhost; location / { root /usr/share/nginx/html; index index.html; try_files $uri $uri/ /index.html; } } ``` 3. 构建Docker镜像:在项目根目录执行以下命令来构建Docker镜像: ``` docker build -t vue-app . ``` 这将会根据Dockerfile中的配置构建一个名为"vue-app"的镜像。 4. 运行Docker容器:执行以下命令来运行Docker容器: ``` docker run -d -p 80:80 vue-app ``` 这将会在本地的80端口上运行Vue.js应用的Docker容器。 5. 访问应用:在浏览器中访问"http://localhost",即可查看部署好的Vue.js应用。 通过以上步骤,你就可以使用Docker部署Vue.js项目了。希望对你有所帮助!如果有任何问题,请随时提问。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值