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

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

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

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

相关推荐
别猜别猜了2 小时前
Linux操作系统02
linux·运维·服务器
阿巴~阿巴~2 小时前
实战Linux进程状态观察:R、S、D、T、Z状态详解与实验模拟
linux·运维·服务器
南川琼语3 小时前
Linux——I/O复用
linux·运维·服务器
IT摆渡者3 小时前
网络安全护网实战:攻击手段解析与防御策略
运维·网络·经验分享
不喝水的鱼儿4 小时前
Ubuntu 25.04安装搜狗输入法
linux·运维·ubuntu
一只小阿乐4 小时前
window 服务器上部署前端静态资源以及nginx 配置
运维·服务器·nginx
bjzhang754 小时前
docker部署tomcat网站服务器
服务器·docker·tomcat
IT成长日记5 小时前
【Docker基础】Docker网络模式:Host模式深度解析
网络·docker·容器·host·网络模式
Jay Kay5 小时前
brpc中后端server挂在同一个命名服务和不同命名服务的区别详解
运维·服务器·brpc
Linux运维技术栈5 小时前
Nginx 动静分离原理与工作机制详解:从架构优化到性能提升
运维·nginx·架构