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容器内服务随容器自动启动的几种方案

    docker容器内服务随容器自动启动的几种方案

    Docker是一种轻量级的容器化平台,可以帮助开发者快速部署、运行和管理应用程序,这篇文章主要给大家介绍了关于docker容器内服务随容器自动启动的几种方案,需要的朋友可以参考下
    2024-07-07
  • 详解基于docker 如何部署surging分布式微服务引擎

    详解基于docker 如何部署surging分布式微服务引擎

    这篇文章主要介绍了详解基于docker 如何部署surging分布式微服务引擎,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-06-06
  • 深入理解docker的四种网络方式

    深入理解docker的四种网络方式

    本篇文章主要介绍了深入理解docker的四种网络方式,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-02-02
  • Docker上传镜像至私有仓库的方法示例

    Docker上传镜像至私有仓库的方法示例

    这篇文章主要介绍了Docker上传镜像至私有仓库的方法示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-01-01
  • 使用Docker搭建私有PyPI镜像仓库的完整步骤教学

    使用Docker搭建私有PyPI镜像仓库的完整步骤教学

    在企业内网或离线开发环境中,我们常常需要一个稳定、快速且可控制的 Python 包管理方案,本文将详细介绍如何使用 devpi 和 Docker 构建一个私有的 PyPI 镜像服务器,有需要的小伙伴可以了解下
    2025-09-09
  • Docker部署安装Redash中文版的方法详解

    Docker部署安装Redash中文版的方法详解

    这篇文章主要介绍了Docker部署安装Redash中文版的方法详解,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-11-11
  • .Net8项目使用docker、docker-compose部署的图文步骤

    .Net8项目使用docker、docker-compose部署的图文步骤

    本文主要介绍了.Net8项目使用docker、docker-compose部署的图文步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-04-04
  • docker重新加载nginx配置方式

    docker重新加载nginx配置方式

    这篇文章主要介绍了docker重新加载nginx配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-08-08
  • Docker 安装Jenkins全过程及踩坑指南

    Docker 安装Jenkins全过程及踩坑指南

    这篇文章主要介绍了Docker 安装Jenkins 踩坑全指南,本文通过图文示例相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-02-02
  • Docker配置国内镜像源方式

    Docker配置国内镜像源方式

    文章介绍了如何配置Docker的daemon文件以使用国内镜像源,加快镜像拉取速度,同时,也提供了macOS和Windows系统上的配置方法以及临时使用镜像源的示例
    2026-01-01

最新评论