前言
随着软件开发的不断演进,前后端分离已成为一种常见的架构模式。这种架构模式使得前端专注于用户界面的呈现和交互,后端则专注于数据处理和业务逻辑。然而,随着项目复杂度的增加,如何高效地部署和管理这种架构成为了一个挑战。
Docker作为一种轻量级的容器化技术,为前后端分离项目的部署提供了强大的支持。它可以帮助我们快速构建、部署和管理应用程序,实现资源的隔离和环境的统一。通过使用Docker,我们可以更加简单、快速地部署前后端分离项目,并确保项目在不同环境中的一致性。
在这篇博客中,我们将探讨如何使用Docker部署前后端分离项目。我们将从项目架构的角度出发,介绍如何构建Docker镜像、编写Dockerfile、配置Docker Compose以及部署到生产环境等关键步骤。通过实际操作和案例分析,我们将帮助你掌握Docker部署前后端分离项目的最佳实践,并提升你的项目部署能力。
无论你是前端开发者、后端开发者还是运维工程师,相信这篇博客都会为你带来宝贵的经验和启示。让我们一起走进Docker的世界,探索前后端分离项目的部署之道吧!
一.搭建局域网
1.搭建net-ry局域网,用于部署若依项目
docker network create net-ry --subnet=172.68.0.0/16 --gateway=172.68.0.1
查看搭建是否成功
docker network ls
2.注意点
注意:关闭宿主机的防火墙,否者容器内部的MySQL、redis等服务,外部访问不了;开放端口3306、6379端口也没用
查看防火墙状态
systemctl status firewalld
关闭防火墙
systemctl stop firewalld.service
注意:关闭防火墙后必须重启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 restart docker
二.安装redis
创建目录
mkdir -p /data/redis/{conf,data}
上传redis.conf文件到/data/redis/conf文件夹中
将容器进行挂载
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
测试是否安装成功
进入容器
docker exec -it zking-redis /bin/bash
通过外部访问
三. 安装MySQL
创建文件夹
mkdir -p /data/mysql/{conf,data}
上传配置文件并且修改
mv my2.cnf my.cnf
.启动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;
第三方工具连接
四.部署后端
使用Dockerfile自定义镜像
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"]
上传ruoyi-admin.jar到Dockerfile_ruoyi-admin文件所在目录
ruoyi-admin为镜像名称,开始制作镜像
docker build -t ruoyi-admin .
运行容器
docker run -itd --name ruoyi-admin --network net-ry -p 8080:8080 ruoyi-admin