使用docker部署若依前后端分离项目全过程

 更新时间:2025年12月13日 08:34:41   作者:gobeyye  
部署前端项目Docker变得越来越流行,它可以轻便灵活地隔离环境,进行扩容,运维管理,这篇文章主要介绍了使用docker部署若依前后端分离项目的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下

前言

由于之前做若依的二次开发项目,项目完成之后想部署到云服务器,折腾了好久才部署成功,所以总结下来,希望能帮到大家。

这里是使用docker进行部署的,如果想用别的方式部署,就需要友友网上再找找了。

这里做个规定:下面说到使用零件的意思就是使用下面我给出的资料,在对应资料有说明,友友要记得看,修改成自己的项目情况。

一、搭建后端

1.1 搭建流程:

  1. 首先需要把后端项目需要的程序先搭建好,如 mysql,redis(使用零件)

  2. 创建网桥(推荐根据项目命名),把mysql,redis和nginx(后面前端布置,现在先不用)放在一起

  3. 打包后端项目(后端项目的mysql和redis对应配置文件记得修改,如果放在一个网桥里面,可以使用网桥名称 )。

  1. 在云服务器里面单独开一个文件夹(推荐使用项目相关名称命名),把后端项目上传到文件夹里面.(优点:便于管理)

  2. 在文件夹里面创建Dockerfile文件,填入对应零件内容(使用零件)

  1. 构建镜像(使用零件)

  2. 创建后端容器(使用零件)

1.2 后端零件:

1.2.1 mysql容器创建:

这里设置的mysql密码为123,有需要的友友自己修改一下。

docker run -d \
  --name mysql \
  -p 3306:3306 \
  -e TZ=Asia/Shanghai \
  -e MYSQL_ROOT_PASSWORD=123 \  
  -v ./mysql/data:/var/lib/mysql \
  -v ./mysql/conf:/etc/mysql/conf.d \
  -v ./mysql/init:/docker-entrypoint-initdb.d \
  mysql

1.2.2 redis容器创建:

这里设置的redis密码为123456,有需要的友友自己修改一下。

docker run -d \
  --name redis \
  -p 6379:6379 \
  -e REDIS_PASSWORD=123456 \
  redis:latest \

1.2.3 Dockerfile内容:

openjdk 是jdk的版本,这里使用的是jdk11,如果想使用其它版本可以自己改,一般直接用11也是可以的。

这里需要修改的就是xxx部分,修改成自己后端项目的名称,其它的不用改。

# 基础镜像
FROM openjdk:11.0-jre-buster
# 设定时区
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
# 拷贝jar包
COPY xxxxx.jar /app.jar
# 入口
ENTRYPOINT ["java", "-jar", "/app.jar"]

1.2.4 构建项目镜像:

注意:构建镜像需要看完下面的解释之后再进行操作,一定一定。

docker build -t 镜像名称 .
  1. . 表示Dockerfile文件路径就在当前路径。例如下图:自己在 root/dkd 中,Dockerfile 文件也在 root/dkd 中就可以使用.

  2. 镜像名称无所谓,最好其和项目有关的。

  3. 后端项目需要放在和Dockerfile相同的文件夹里面。

  4. 基本和下图一样(项目名称不一样),除了 mysql,mysql 不需要创建在哪里(那里是错误的),mysql的数据我们使用客户端工具连上自己加。

1.2.5 创建后端容器:

docker run -d \
  --name 容器名(自己指定) \
  -p 8080:8080 \
  --network 网桥名 \
  镜像名(前面构建的)

二、前端搭建:

2.1 搭建流程:

  1. nginx 容器创建(使用零件),记得放到网桥里面。
  2. 打包前端项目,生成 dist 文件(前端项目所在位置)。

下图为如何打包

下图为 dist 所在文件夹(在项目文件夹里面):

  1. 把 dist 里面的所有内容拷贝到/var/lib/docker/volumes/html/_data 目录里面

  1. 修改/var/lib/docker/volumes/conf/_data/ 文件夹里面的 nginx.conf 文件(直接贴零件,稍加修改)。

  1. 最后不要忘记要重启 nginx 容器刷新配置。

2.2 前端零件:

不一定都会用到。

2.2.1 nginx 容器创建:

一般不用改。

docker run -d --name nginx -p 80:80 -v html:/usr/share/nginx/html -v conf:/etc/nginx nginx

2.2.2 nginx.conf 文件:

注意:下面有些要修改成自己项目的。

user  root;
worker_processes  auto;

error_log  /var/log/nginx/error.log notice;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}

http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;


    server {
        listen       80;
        server_name  159.75.xxx.145(记得切换);

        location / {
            root   /usr/share/nginx/html;
            index  index.html index.htm;
            try_files $uri $uri/ /index.html; #防止刷新报404
            # try_files $uri $uri/ /index.html;
        }

        # location /prod-api/{
        #     proxy_set_header Host $http_host;ls
        #     proxy_set_header X-Real-IP $remote_addr;
        #     proxy_set_header REMOTE-HOST $remote_addr;
        #     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        #     proxy_pass http://159.75.xxx.145:8080/;
        # }

        location /prod-api/{
			proxy_set_header Host $http_host;
			proxy_set_header X-Real-IP $remote_addr;
			proxy_set_header REMOTE-HOST $remote_addr;
			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
			proxy_pass http://dkd-project(记得切换):8080/;
		}		
		location /dev-api/{
			proxy_set_header Host $http_host;
			proxy_set_header X-Real-IP $remote_addr;
			proxy_set_header REMOTE-HOST $remote_addr;
			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
			proxy_pass http://dkd-project(记得切换):8080/;
		}

    }

    include /etc/nginx/conf.d/*.conf;
}

2.2.3 nginx html 数据卷所在位置:

/var/lib/docker/volumes/html/_data

2.2.4 nginx conf 数据卷所在位置:

/var/lib/docker/volumes/conf/_data/

三、总结

3.1 后端:

最好要把后端项目分成开发和上线两个部分(打包的时候记得切换到上线部分)。

只要把mysql(数据要有)和redis先搭建好,后端自己制作镜像创建容器即可,注意点就是,项目访问mysql和redis是通过网桥来访问的,好处可以少开放一点端口,加快访问速度。

后端构建镜像需要Dockerfile文件。

3.2 前端:

首先创建nginx容器(要把conf和html文件,挂载出来)。

前端项目基本不用动。

把dist里面的文件放入html/_data里面。

配置conf文件。

最后要把nginx放到网桥里面。

总结

到此这篇关于使用docker部署若依前后端分离项目的文章就介绍到这了,更多相关docker部署若依前后端分离内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Docker-compose离线安装全过程

    Docker-compose离线安装全过程

    下载docker-compose-Linux-x86_64并上传至CentOS7的/usr/local/bin目录,重命名为docker-compose,添加执行权限,最后通过版本命令测试安装是否成功
    2025-08-08
  • Centos下安装docker教程

    Centos下安装docker教程

    本文给大家介绍的是在centos下安装docker的详细教程,分为yum安装和脚本安装2种方式,有需要的小伙伴可以参考下。
    2016-02-02
  • Docker更换镜像源详细代码教程

    Docker更换镜像源详细代码教程

    Docker是一个开源的应用容器引擎,使用Go语言编写,允许开发者将应用及依赖打包到轻量级容器中,可在不同Linux系统间移植,这篇文章主要给大家介绍了关于Docker更换镜像源的相关资料,需要的朋友可以参考下
    2024-08-08
  • Docker Desktop启动失败的解决(Docker failed to initialize Docker Desktop is shutting down)

    Docker Desktop启动失败的解决(Docker failed to i

    本文主要介绍了Docker Desktop启动失败的解决(Docker failed to initialize Docker Desktop is shutting down),文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • Docker和宿主机之间如何共享文件

    Docker和宿主机之间如何共享文件

    这篇文章主要介绍了Docker和宿主机之间如何共享文件问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • Docker安装配置镜像加速器的实现

    Docker安装配置镜像加速器的实现

    本文主要介绍了Docker安装配置镜像加速器的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-01-01
  • 优化Docker容器启动时间的常见方案

    优化Docker容器启动时间的常见方案

    优化 Docker 容器启动时间,尤其在大规模部署、CI/CD 或微服务架构中非常关键,启动慢会影响响应时间、弹性扩缩容和用户体验,以下是从镜像构建、容器运行、依赖管理等多个方面整理的 容器启动加速方案,需要的朋友可以参考下
    2025-06-06
  • linux下如何使用docker安装minio

    linux下如何使用docker安装minio

    这篇文章主要介绍了linux下如何使用docker安装minio问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-04-04
  • docker/docker desktop for window环境下创建本地镜像仓库方式

    docker/docker desktop for window环境下创建本地镜像仓库方式

    这篇文章主要介绍了docker/docker desktop for window环境下创建本地镜像仓库方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-03-03
  • 使用docker搭建sonarqube的方法

    使用docker搭建sonarqube的方法

    这篇文章主要介绍了使用docker搭建sonarqube的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03

最新评论