Docker部署若依前后端分离项目

目录

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

二.redis安装

三.mysql安装

四.若依后端项目搭建

五.nginx安装

六.前端项目搭建


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

# 搭建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

systemctl stop 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.

参考链接:https://blog.csdn.net/xiegongmiao/article/details/128409967
systemctl restart docker

二.redis安装

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

执行以下命令安装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 

注:

#--privileged=true :让容器root用户拥有最高权限,否则可能会出现权限不够错误

#redis-server /etc/redis/redis.conf:容器启动时执行的命令及读取的配置

测试一下:

docker exec -it zking-redis /bin/bash

cd /usr/local/bin/

redis-cli

三.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;

#输入密码
# 创建用户及授权
grant all privileges on *.* to root@'%' identified by 'sasa' with grant option;
# 刷新权限
flush privileges;


navicat测试:

创建数据库:

  1. 使用客户端工具初始化数据库

  2. 使用命令初始化数据库

#登录到控制台
mysql -u root -p
#执行sql
source sql文件全路径

注:这里我用的是navicat连接工具。

四.若依后端项目搭建

使用Dockerfile自定义镜像:

# 1.构建Dockerfile镜像
1)切换到家目录
cd ~
mkdir ruoyi-admin
cd ruoyi-admin
2)编写Dockerfile文件内容
vim 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

#查看日志

docker exec -it ruoyi-admin /bin/bash

cd /home/ruoyi/logs

#查看是否搭建完毕

这样后端就部署完啦。

五.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

接下来只需在浏览器输入对应端口即可访问前端了。

  • 29
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Docker 是一种容器化技术,可以将应用程序及其依赖项打包成一个独立的容器,以便在任何环境中运行。使用 Docker 部署前后端分离项目可以提高部署的可靠性和可重复性,并且可以更方便地进行测试和部署。 以下是部署前后端分离项目的一般步骤: 1. 编写 Dockerfile 文件 Dockerfile 文件是用于构建 Docker 镜像的脚本文件。在 Dockerfile 中指定项目所需的软件和依赖项,并将它们打包成一个镜像。 2. 在 Docker 中构建镜像 使用 Docker 命令行工具构建 Docker 镜像。首先需要将 Dockerfile 文件上传到 Docker 宿主机上,然后在 Docker 宿主机上执行构建命令。构建命令通常包括指定 Dockerfile 的路径和镜像的名称。 3. 启动容器 使用 Docker 命令行工具启动 Docker 容器。启动命令通常包括指定容器使用的镜像、需要映射的端口、需要挂载的目录等参数。 4. 配置前端项目 将前端项目打包成静态资源,并将其复制到 Docker 容器中。 5. 配置后端项目 将后端项目打包成可执行文件,并将其复制到 Docker 容器中。 6. 运行项目Docker 容器中启动前端和后端项目。通常需要使用不同的命令来启动前端和后端项目。 7. 测试项目 在浏览器中访问前端项目,或者使用 curl 命令测试后端 API 接口,测试项目是否正常运行。 总体来说,使用 Docker 部署前后端分离项目能够提高部署的可靠性和可重复性,同时也能够更方便地进行测试和部署

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值