Docker项目部署教程

 更新时间:2026年03月09日 09:03:25   作者:释怀不想释怀  
文章介绍了如何部署后端服务和前端项目,后端使用SpringBoot,通过Maven打包并创建Docker镜像,前端使用Nginx容器化部署,通过反向代理访问后端服务

部署服务端(后端)

1). 修改项目的配置文件,修改数据库服务地址(打包package)

然后,执行maven中的package生命周期,进行打包(跳过测试),并将打包后的jar包命名为 tlias.jar 。

2). 编写Dockerfile文件(AI辅助)

文件名 Dockerfile:

# 使用 CentOS 7 作为基础镜像

FROM centos:7

# 添加 JDK 到镜像中

COPY jdk17.tar.gz /usr/local/

RUN tar -xzf /usr/local/jdk17.tar.gz -C /usr/local/ && rm /usr/local/jdk17.tar.gz

# 设置环境变量

ENV JAVA_HOME=/usr/local/jdk-17.0.10

ENV PATH=$JAVA_HOME/bin:$PATH

# 阿里云OSS环境变量

ENV OSS_ACCESS_KEY_ID=LTAI5tP6dc4cvccdvvySE39X ENV OSS_ACCESS_KEY_SECRET=ZSyIT31qhxIkS0dH1H9WzHqPiyM3Ot 

#统一编码 
ENV LANG=en_US.UTF-8 
ENV LANGUAGE=en_US:en 
ENV LC_ALL=en_US.UTF-8 
# 创建应用目录 

RUN mkdir -p /tlias WORKDIR /tlias 
# 复制应用 JAR 文件到容器 
COPY tlias.jar tlias.jar 
# 暴露端口 

EXPOSE 8080 
# 运行命令 
ENTRYPOINT ["java","-jar","/tlias/tlias.jar"]

由于项目要运行,需要依赖jdk的环境,所以这里我们需要将tlias.jar,jdk17.tar.gz,Dockerfile三个文件,上传到Linux服务器的 /root/tlias 目录下(如果没有这个目录,提前创建好)。

3). 构建Docker镜像,部署Docker容器,运行测试。

  • 构建Docker镜像

docker build -t tlias:1.0 .

  • 部署Docker容器

docker run -d --name tlias-server --network itheima -p 8080:8080 tlias:1.0

通过 docker logs -f 容器名,就可以查看容器的运行日志。

这样后端服务,就已经启动起来了。

部署前端

  • 需求:创建一个新的nginx容器,将资料中提供的前端项目的静态资源部署到nginx中。

  • 步骤:

在宿主机上准备静态文件及配置文件存放目录(在 /usr/local 目录下创建 tlias-web 目录)。    

-v /usr/local/tlias-web/html:/usr/share/nginx/html
-v /usr/local/tlias-web/conf/nginx.conf:/etc/nginx/nginx.conf
  • 部署nginx容器

1). 部署nginx容器(设置目录映射)。

  • 将 目录html和 配置文件存放目录 conf,上传至服务器端的 /usr/local/tlias-web目录下。

  • 执行如下命令,部署nginx容器

docker run -d \ 
--name nginx-tlias \
-v /usr/local/tlias-web/html:/usr/share/nginx/html \ 
-v /usr/local/tlias-web/conf/nginx.conf:/etc/nginx/nginx.conf \ 
--network itheima \ 
-p 80:80 \ 
nginx:1.20.2

前后端都部署完毕后,就可以打开浏览器,来测试一下。访问前端的nginx服务器 。

总结:

  • 先部署mysql然后是后端最后是前端 
  • 部署MySQL
  • 在前面的这个本地目录挂载当中我们实现了mysql的操作容器数据目录,
  • 配置文件,还有初始化脚本的目录
  • 挂载而在初始化脚本当中有相关的数据库文件然后把它挂在上来
docker run -d \
 --name mysql \
 -p 3307:3306 \
 -e MYSQL_ROOT_PASSWORD=123 \
 -e TZ=Asia/Shanghai \
 -v /root/mysql/data:/var/lib/mysql \
 -v /root/mysql/init:/docker-entrypoint-initdb.d \
 -v /root/mysql/conf:/etc/mysql/conf.d \
 mysql:8

 

后端项目

如何部署一个后端项目

一般会按 “数据库 → 应用 → 容器化 → 部署验证” 这个思路来做:

1、先准备基础环境(数据库)

  • 使用 Docker 启动 MySQL 容器
  • 创建业务所需的数据库和表结构
  • 确保数据库服务稳定可访问

2、处理后端应用本身(以 Java / Spring Boot 为例)

  • 修改项目配置文件,把数据库地址改成容器或服务器对应的地址
  • 调整日志配置(如 logback),把日志输出到容器可挂载的目录,方便后期运维
  • 将项目打包成可运行的 jar 包

3、对后端应用进行容器化

  • 编写 Dockerfile,指定基础 JDK 镜像
  • 把 jar 包复制到镜像中,并设置启动方式
  • 构建后端应用的 Docker 镜像

4、部署并运行容器

  • 使用构建好的镜像启动容器
  • 配置端口映射、环境变量、日志目录挂载
  • 确认后端服务能正常启动并连接数据库

5、运行与验证

  • 通过接口或前端访问验证服务是否正常
  • 检查日志和数据库连接是否正常

一句总结:

整个过程的核心是:先保证数据库可用,再让应用配置适配容器环境,最后通过 Docker 实现标准化部署和运行。

前端

前端项目你是怎么部署的?

一般是通过 Nginx + Docker 容器化 的方式来部署前端静态资源,整体思路是:

1、创建并部署 Nginx 容器

  • 使用 Docker 启动一个独立的 Nginx 容器

通过目录映射的方式:

  • 将前端打包后的 静态资源 映射到 Nginx 的 html 目录
  • 将自定义的 nginx.conf 配置文件 映射到容器中

这样做的好处是:

  • 不用进容器改配置
  • 前端资源和配置都可以在宿主机统一管理

2、配置 Nginx 反向代理(重点)

  • 在 nginx.conf 中配置 反向代理规则
  • 直接使用 Docker 容器名作为 upstream 地址,而不是 IP

例如:

  • 前端通过 Nginx
  • Nginx 反向代理到后端容器 tlias-web-management
  • 这是基于 Docker 内部网络的 容器名自动 DNS 解析机制

好处是:

  • 容器重启 IP 改变也不受影响
  • 服务之间解耦,部署更稳定

面试时可以一句话点亮:

  • “Nginx 在 Docker 网络中可以直接通过容器名访问后端服务。”

3、上传并部署前端资源

  • 将前端项目打包后的静态文件上传到服务器
  • 放入 Nginx 容器映射的目录中
  • 同时准备好对应的 Nginx 配置文件

4、启动并验证

  • 启动 Nginx 容器
  • 通过浏览器访问前端地址

验证:

  • 静态资源是否正常加载
  • 接口请求是否成功被反向代理到后端容器

总结

前端通过 Nginx 容器提供静态资源服务,并利用 Docker 网络和容器名 实现对后端容器的反向代理,整体部署方式清晰、稳定、易维护。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Docker load命令进行镜像恢复与迁移的完整指南

    Docker load命令进行镜像恢复与迁移的完整指南

    docker load 是 Docker 镜像生命周期管理的关键命令,它与 docker save 配合实现镜像的离线迁移和环境复制,是企业级容器化部署的基础工具,下面我们就来看看具体实现方法吧
    2025-09-09
  • Jenkins Docker静态agent节点的构建过程

    Jenkins Docker静态agent节点的构建过程

    这篇文章主要介绍了Jenkins Docker静态agent节点的构建,静态节点就是通过java -jar这条命令去启动起来就可以了,本文通过图文实例相结合给大家介绍的非常详细,需要的朋友可以参考下
    2021-10-10
  • docker容器的四种端口映射演示分析

    docker容器的四种端口映射演示分析

    这篇文章主要为大家介绍了docker容器的四种端口映射演示分析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步早日升职加薪
    2022-04-04
  • dockerfile的使用及使用dockerfile部署springboot项目的过程

    dockerfile的使用及使用dockerfile部署springboot项目的过程

    Dockerfile是用来构建Docker镜像的文本文件,是由一条条构建镜像所需的指令和参数构成的脚本,这篇文章主要介绍了dockerfile的使用,使用dockerfile部署springboot项目,需要的朋友可以参考下
    2023-04-04
  • docker基础知识之挂载本地目录的方法

    docker基础知识之挂载本地目录的方法

    本篇文章主要介绍了docker基础知识之挂载本地目录的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-04-04
  • Docker使用Portainer搭建可视化界面的方法

    Docker使用Portainer搭建可视化界面的方法

    这篇文章主要介绍了Docker使用Portainer搭建可视化界面,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-11-11
  • 详解利用Dockerfile构建mysql镜像并实现数据的初始化及权限设置

    详解利用Dockerfile构建mysql镜像并实现数据的初始化及权限设置

    本篇文章主要介绍了详解利用Dockerfile构建mysql镜像并实现数据的初始化及权限设置 ,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-06-06
  • docker-compose如何实现滚动更新

    docker-compose如何实现滚动更新

    这篇文章主要介绍了docker-compose如何实现滚动更新方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-05-05
  • Docker单机部署Doris超详细图文教程

    Docker单机部署Doris超详细图文教程

    Apache Doris是一款基于MPP架构的分析型数据库,由百度大数据部研发,支持亚秒级响应时间的实时数据分析,本文旨在为学习Doris的同学提供一个快速的操作指引,以便更高效地挖掘数据背后的价值,对docker 部署Doris 数据库使用感兴趣的朋友跟随小编一起看看吧
    2024-09-09
  • Docker 部署 vue 项目的详细流程

    Docker 部署 vue 项目的详细流程

    使用Docker配合Nginx部署Vue3项目涉及多个步骤:首先安装Nginx,然后创建挂载目录及配置文件;接着打包Vue项目并上传至服务器;最后创建Dockerfile,构建镜像并启动容器,部署完成后,通过IP访问应用以验证是否成功
    2024-09-09

最新评论