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 "donkee@vip.qq.com"
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

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

相关推荐
我好饿13 小时前
Linux入门教程 第十五章 Linux 系统调优工具
linux·运维·网络
萌虎爱分享3 小时前
Linux 防火墙 (firewalld) 管理完整指南
linux·运维·防火墙·firewalld
mCell7 小时前
Docker 进阶教程
运维·docker·容器
mCell7 小时前
Docker 入门教程
运维·docker·操作系统
祈祷苍天赐我java之术8 小时前
Linux 进阶之性能调优,文件管理,网络安全
java·linux·运维
深耕云原生9 小时前
Kubernetes 深入浅出系列 | 容器剖析之容器安全
安全·容器·kubernetes
王火火(DDoS CC防护)9 小时前
服务器网络带宽不足要怎么处理?
运维·服务器
潇凝子潇9 小时前
获取服务器指标的信息
linux·运维·服务器
FreeBuf_9 小时前
Chrome高危零日漏洞PoC公开,已被用于野外攻击
linux·运维·服务器·安全·web安全
初学者_xuan11 小时前
Linux程序与进程和进程程序基础以及程序管理(零基础掌握版)
运维·计算机网络·网络安全·零基础·学习方法·linux程序管理