Docker 环境搭建怎么搭建前后端自动化部署流水线

冬婷君_2491

冬婷君_2491

2026-08-29

623人浏览

原创

核心是围绕环境隔离、流程可控、触发自动三大目标组织组件:1. 准备docker与docker compose并配置权限;2. 用多阶段dockerfile分层构建前后端镜像;3. jenkins通过dind模式驱动声明式pipeline完成构建、推送与部署;4. 用docker-compose.yml统一编排服务,实现一键启停与配置外化。

docker 环境搭建怎么搭建前后端自动化部署流水线

用 Docker 搭建前后端自动化部署流水线,核心不是“先装 Docker 再堆服务”,而是围绕环境隔离、流程可控、触发自动三个目标来组织组件。关键在于让构建环境干净可复现,让部署动作可定义、可回溯、可重复。下面分四块讲清楚怎么做。

1. 基础容器环境准备(Docker + Docker Compose)

先确保服务器(CentOS 7/Ubuntu 20.04+)上装好 Docker 和 docker-compose,并验证权限:

  • 安装 Docker:执行 yum install -y yum-utils && yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo && yum install -y docker-ce docker-ce-cli containerd.io,然后 systemctl start docker && systemctl enable docker
  • 把 Jenkins 或构建用户加入 docker 组:usermod -aG docker jenkins,否则容器内无法调用 docker 命令
  • 安装 docker-compose:下载二进制文件到 /usr/local/bin/docker-compose,加执行权限,运行 docker-compose --version 确认可用

2. 前后端镜像分层构建(多阶段 Dockerfile)

避免把 node_modules、devDependencies 打进生产镜像。用多阶段构建分离“构建”和“运行”:

Docker Cli
Docker Cli

使用 Docker CLI 构建、运行、停止、检查和管理容器与镜像的助手。用于执行容器相关任务。

下载
  • 前端(如 Vue/React):第一阶段用 node:18-alpine 安装依赖并执行 npm run build;第二阶段用 nginx:alpine,只 COPY 构建产物 dist/ 和自定义 nginx.conf
  • 后端(如 Spring Boot):用 openjdk:17-jre-slim 为基础镜像,COPY 打包好的 JAR 包,设置 ENTRYPOINT ["java","-jar","/app.jar"],不装 Maven 或 JDK 全套工具链
  • 在项目根目录加 .dockerignore,排除 node_modules/、src/、test/、.git 等非必需文件,加快构建速度

3. Jenkins 流水线驱动部署(声明式 Pipeline + Docker-in-Docker)

Jenkins 不只是“跑命令的机器”,它要能启动容器、构建镜像、推送到仓库、再更新线上服务。重点配置两件事:

  • 让 Jenkins 能用 Docker:推荐 Docker-in-Docker(DinD)模式——启动 Jenkins 容器时挂载 /var/run/docker.sock,并加 --privileged(或更安全的 --cap-add=SYS_ADMIN),这样 Pipeline 中就能直接执行 docker build 和 docker push
  • 写一个可复用的 Jenkinsfile:定义拉代码 → 构建前端镜像 → 推送至私有 Harbor → 停旧容器 → 启新容器。例如后端部署段可写:sh 'docker stop my-backend || true' && sh 'docker rm my-backend || true' && sh 'docker run -d --name my-backend --network my-net -p 8080:8080 registry.example.com/my-backend:${BUILD_NUMBER}'

4. 一键启停与服务编排(docker-compose.yml 统一管理)

别让 Jenkins 直接裸跑一堆 docker run。把所有服务(前端 Nginx、后端应用、MySQL、Redis)定义在 docker-compose.yml 中,由 Jenkins 在部署时执行 docker-compose up -d:

  • 各服务通过 service name 互访(如后端代码里数据库地址写 mysql:3306,而不是 127.0.0.1)
  • 使用 env_file 外部化敏感配置(数据库密码、API Key),避免硬编码
  • Jenkins 执行部署时,先 scp 更新 compose 文件和镜像 tag,再远程运行 docker-compose pull && docker-compose up -d

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

docker

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
python是前端还是后端
python是前端还是后端

Python属于前端也属于后端,其灵活性和丰富的生态系统使得开发人员能够在不同的领域中灵活运用。本专题为大家提供python相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.11

2243

5

前端和后端的区别
前端和后端的区别

前端关注的是用户界面的设计和交互,而后端则注重数据处理和逻辑控制。想了解更多前端后端的相关内容,可以阅读本专题下面的文章。

2024.03.19

5930

13

后端的主要工作内容介绍
后端的主要工作内容介绍

后端是应用程序的服务端部分,负责核心任务,如数据库交互、业务逻辑处理和响应客户端请求。想了解更多后端的相关内容,可以阅读本专题下面的文章。

2024.03.19

5246

10

k8s和docker区别
k8s和docker区别

k8s和docker区别有抽象层次不同、管理范围不同、功能不同、应用程序生命周期管理不同、缩放能力不同、高可用性等等区别。本专题为大家提供k8s和docker区别相关的各种文章、以及下载和课程。

2023.07.24

665

4

docker进入容器的方法有哪些
docker进入容器的方法有哪些

docker进入容器的方法:1. Docker exec;2. Docker attach;3. Docker run --interactive --tty;4. Docker ps -a;5. 使用 Docker Compose。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.04.08

4799

6

docker容器无法访问外部网络怎么办
docker容器无法访问外部网络怎么办

docker 容器无法访问外部网络的原因和解决方法:配置 nat 端口映射以将容器端口映射到主机端口。根据主机兼容性选择正确的网络驱动(如 host 或 overlay)。允许容器端口通过主机的防火墙。配置容器的正确 dns 服务器。选择正确的容器网络模式。排除主机网络问题,如防火墙或连接问题。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.04.08

5717

6

docker镜像有什么用
docker镜像有什么用

docker 镜像是预构建的软件组件,用途广泛,包括:应用程序部署:简化部署,提高移植性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.04.08

2153

7

Docker容器化部署与DevOps实践
Docker容器化部署与DevOps实践

本专题面向后端与运维开发者,系统讲解 Docker 容器化技术在实际项目中的应用。内容涵盖 Docker 镜像构建、容器运行机制、Docker Compose 多服务编排,以及在 DevOps 流程中的持续集成与持续部署实践。通过真实场景演示,帮助开发者实现应用的快速部署、环境一致性与运维自动化。

2026.02.11

219

16

Docker 容器部署
Docker 容器部署

本专题整合了Docker容器部署相关内容,阅读专题下面的文章了解更多详细操作教程。

2026.03.31

431

14

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
phpMyAdmin 安装文档
phpMyAdmin 安装文档

共0课时 | 0人学习

Docker 官方文档
Docker 官方文档

共0课时 | 0人学习

宝塔 Docker 模块使用手册
宝塔 Docker 模块使用手册

共0课时 | 0人学习