Docker之部署前后端分离项目(以若依为案例实施必会!!!)

文章目录

一、搭建局域网

四个服务器去部署。

  • ①启动容器
  • ②制作镜像
  • ③搭建局域网
  • ④容器之间的相互通信

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

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

查看局域网

bash 复制代码
docker network ll
docker network ls

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

查看防火墙是否关闭

bash 复制代码
systemctl status firewalld

项目没上线的时候防火墙是可以关闭的,容易测试问题

项目上线的话就必须开启

所以我就要停掉防火墙

bash 复制代码
systemctl stop firewalld

注意:关闭防火墙的时候,必须记得重启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.

bash 复制代码
systemctl restart docker

目前为止局域网就搭建完了

二、需要安装redis

①创建目录

bash 复制代码
mkdir -p /data/redis/{conf,data}
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 --restart=always \
--network net-ry redis \
redis-server /etc/redis/redis.conf 

查看redis有没有启动成功

bash 复制代码
docker exec -it zking-redis /bin/bash
whereis redis-cli
cd /usr/local/bin
ls
redis-cli
ping

可以看到是成功的

  1. --privileged=true :让容器root用户拥有最高权限,否则可能会出现权限不够错误
  2. redis-server /etc/redis/redis.conf:容器启动时执行的命令及读取的配置
  3. redis-6.2.6.tar.gz压缩包中找到redis.conf官方配置文件
  4. 在hub.docker.com中找到启动redis方式

    数据库存储位置

三、安装MySQL

  • 1.创建文件夹
bash 复制代码
mkdir -p /data/mysql/{conf,data}
  • 2.上传my.cnf文件到/data/mysql/conf文件夹中 (可以将my2.cnf修改好在Linux中重命名为my.cnf)
bash 复制代码
mv my2.cnf my.cnf
  • 3.启动MySQL容器服务
bash 复制代码
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


先登录进去

bash 复制代码
mysql -u root -p

创建用户及授权

bash 复制代码
grant all privileges on *.* to root@'%' identified by 'sasa' with grant option;

刷新

bash 复制代码
flush privileges;

刷新完之后去外部访问,看能访问不

装好了之后就要去初始化数据库脚本

你也可以使用其他方式

bash 复制代码
1. 使用客户端工具初始化数据库
2. 使用命令初始化数据库

到这里数据库就完成了。

四、部署后端服务

把项目打包是开发人员做的事情

4.1使用Dockerfile自定义镜像

1)切换到家目录

bash 复制代码
cd ~
mkdir ruoyi-admin
cd ruoyi-admin


把自定义镜像也放进去

bash 复制代码
mv Dockerfile_ruoyi-admin Dockerfile

运行容器

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

然后进入到容器看是否正常(查看日志)

然后去看后端项目搭建好了没,去测试一下

到目前为止后端项目就部署成功了。(如果还有不懂的私信博主)

相关推荐
张忠琳1 分钟前
【NVIDIA】NVIDIA k8s-device-plugin v0.19.3 配置API模块深度分析之二
云原生·容器·架构·kubernetes·nvidia
摇曳的精灵21 分钟前
dify的docker部署
运维·docker·容器·dify
weixin_4629019734 分钟前
TCP+WebSocket双向转发服务器 完整部署运维手册
运维·websocket·tcp/ip
软件资深者1 小时前
QQ音乐PC版 使用教程:去广告绿色便携版音乐播放器,本地曲库管理与在线试听一键搞定,音乐播放器新手 5 分钟上手(2026)
测试工具·容器·娱乐·软件需求
AAA@峥1 小时前
Ceph RBD 块存储全解析:原理与实操汇总
运维·分布式·ceph
2301_777998341 小时前
Linux线程控制——从线程创建到线程分离(第三部分:线程等待 pthread_join)
linux·运维·服务器·c语言·c++
维核科技2 小时前
AI Agent从“玩具“进化成“劳动力“:2026年智能体商业化元年
运维·人工智能·服务器维修·gpu维修
谜之锋2 小时前
Linux 源码编译安装 net-snmp-5.9.1 并配置使用 SNMPv3
linux·运维·服务器·snmpv3
RuiZN2 小时前
Muduo---Channel类
运维·服务器·c++
一直在努力学习的菜鸟2 小时前
阿里云2G2核的服务器可以做什么?
linux·运维