Docker前后端项目部署

目录

一、搭建项目部署的局域网

二、redis安装

三、MySQL安装

四、若依后端项目搭建

[4.1 使用Dockerfile自定义镜像](#4.1 使用Dockerfile自定义镜像)

五、若依前端项目搭建


一、介绍前后端项目

一张图带你看懂ruoyi的前后端项目部署

得出结论:需要4台服务器,都处于同一个局域网中,方便操作

二、搭建项目部署的局域网

搭建net-ry局域网,用于部署若依项目

复制代码
docker network create net-ry --subnet=172.68.0.0/16 --gateway=172.68.0.1

# 注意1:关闭宿主机的防火墙,否者容器内部的MySQL、redis等服务,外部访问不了;开放端口3306、6379端口也没用。
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.

关闭防火墙

复制代码
systemctl stop firewalld

关闭防火墙,一定要记得重启否则后面制作自定义镜像会报错

复制代码
systemctl restart docker

三、redis安装

复制代码
#创建目录
mkdir -p /data/redis/{conf,data}
#上传redis.conf文件到/data/redis/conf文件夹中
# bind 0.0.0.0 充许任何主机访问
# daemonize no 
# requirepass sasa

把以下代码copy到/data/redis/conf下运行

复制代码
#启动容器不进入容器,取了个名字zking-redis,映射了端口署主机6379端口映射到容器
#做了一个挂载,把我们署主机的redis配置文件,映射到容器内部的redis配置文件
#redis缓存数据,署主机的redis data 映射到容器redis data文件
#给予容器的root最高权限,docker引擎启动
#把zking 加入到net-ry局域网中
#容器会执行的一个命令,读取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 --restart=always \
--network net-ry redis \
redis-server /etc/redis/redis.conf 

四、MySQL安装

复制代码
# 1.创建文件夹
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

进入容器

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

外部访问

#登录到控制台

mysql -u root -p

#执行sql

source sql文件全路径

注意!:博主使用的是外部工具navicat,进行导入的数据

五、若依后端项目搭建

4.1 使用Dockerfile自定义镜像

1.构建Dockerfile镜像

复制代码
1)切换到家目录
cd ~
2)创建目录
mkdir ruoyi-admin
3)切换到该路径
cd ruoyi-admin

上传jar文件

上传文件:Dockerfile_ruoyi-admin 2)编写Dockerfile文件内容

复制代码
vim Dockerfile_ruoyi-admin 

#把以下代码放到Dockerfile_ruoyi-admin
FROM anapsix/alpine-java:8_server-jre_unlimited
MAINTAINER "[email protected]"
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 .

运行容器

复制代码
docker run -itd --name ruoyi-admin --network net-ry -p 8080:8080  ruoyi-admin

可以去 cd /home/ruoyi/logs 查看我们的日志错误

我们去访问一下,看一下后端项目是否部署成功

六、若依前端项目搭建

5.1 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

把我们前端项目放到,/data/nginx/html

解压

复制代码
#没有解压工具 yum install -y unzip
unzip dist.zip

解压完后,我们去浏览器上登录,可以看到没有问题,今天就到这里啦!

相关推荐
Rverdoser5 小时前
服务器(一种管理计算资源的计算机)
运维·服务器
流浪法师125 小时前
SecProxy - 自动化安全协同平台
运维·安全·自动化
IT _oA6 小时前
Active Directory 域服务
运维·服务器·网络·windows·笔记
MXsoft6187 小时前
云原生运维在 2025 年的发展蓝图
运维·服务器·数据库
嵌入式-老费8 小时前
Linux上位机开发实践(一个硬件算法加速的示例)
linux·运维·服务器
前进的程序员8 小时前
Linux C 与 C 语言的区别及开发差异
linux·运维·c语言
葡萄城技术团队8 小时前
如何通过前端表格控件实现自动化报表?1
运维·前端·自动化
CZIDC8 小时前
华为昇腾服务器上查看固件、驱动和CANN版本的常用方法
linux·运维·服务器
怪兽也会哭哭9 小时前
网页部署到宝塔服务器上,发送请求报错?org.springframework.data.redis.RedisSystemException,让我来看看
运维·服务器·redis
胡八一9 小时前
Kubernetes 节点磁盘空间空了怎么办?解决 containerd overlay 100%问题
云原生·容器·kubernetes