Docker Compose 实战:一键部署前后端分离项目

概述

Docker Compose 是 Docker 官方推出的容器编排工具,通过 YAML 文件定义多容器应用的服务、网络和卷,实现一键启动与停止。本文以典型前后端分离项目为例(前端 Vue + Nginx,后端 Spring Boot + MySQL),演示如何使用 Docker Compose 实现快速部署。

环境准备

  1. 安装 Docker:确保已安装 Docker 18.06+ 版本。
  2. 安装 Docker Compose:从官方文档安装最新版。
  3. 项目源码:准备好前端(dist 目录或构建镜像)、后端 JAR 包及 Dockerfile。

项目结构

project/├── frontend/│   ├── Dockerfile│   └── dist/          # 打包后的静态文件├── backend/│   ├── Dockerfile│   └── app.jar        # Spring Boot 可执行 JAR├── mysql/│   └── init.sql       # 初始化数据库脚本└── docker-compose.yml

Dockerfile 编写

前端 Dockerfile

FROM nginx:alpineCOPY dist /usr/share/nginx/htmlCOPY nginx.conf /etc/nginx/nginx.conf

其中 nginx.conf 配置反向代理到后端 API。

后端 Dockerfile

FROM openjdk:11-jre-slimCOPY app.jar /app.jarEXPOSE 8080ENTRYPOINT ["java", "-jar", "/app.jar"]

配置 docker-compose.yml

version: '3.8'services:  mysql:    image: mysql:8.0    container_name: mysql    environment:      MYSQL_ROOT_PASSWORD: root123      MYSQL_DATABASE: mydb    volumes:      - ./mysql/init.sql:/docker-entrypoint-initdb.d/init.sql      - mysql-data:/var/lib/mysql    ports:      - "3306:3306"  backend:    build: ./backend    container_name: backend    depends_on:      - mysql    environment:      SPRING_DATASOURCE_URL: jdbc:mysql://mysql:3306/mydb?useSSL=false      SPRING_DATASOURCE_USERNAME: root      SPRING_DATASOURCE_PASSWORD: root123    ports:      - "8080:8080"  frontend:    build: ./frontend    container_name: frontend    depends_on:      - backend    ports:      - "80:80"volumes:  mysql-data:

启动与验证

  1. 在项目根目录执行 docker-compose up -d 启动所有服务。
  2. 查看容器状态:docker-compose ps
  3. 访问前端 http://localhost,测试页面与 API 接口。
  4. 日志查看:docker-compose logs -f

常用命令

  • docker-compose up -d:后台启动
  • docker-compose down:停止并删除容器
  • docker-compose restart:重启服务
  • docker-compose build:重新构建镜像

注意事项

  • 确保 init.sql 包含数据库初始化语句,否则后端启动时会报错。
  • 后端连接 MySQL 时,主机名使用 service 名称 mysql,Docker Compose 自动解析。
  • 生产环境应指定镜像标签,避免使用 latest。

总结

通过 Docker Compose,我们仅需一个 YAML 文件和一条命令即可启动完整的前后端分离项目。这种方法简化了开发、测试和生产环境的一致性管理,是微服务和容器化部署的利器。

分享到:
上一篇
1核2G服务器搭建WordPress博客教程
下一篇
AI无人值守开发:全自动从需求到上线
1
系统公告

泽御云五一特惠活动🔥

泽御云持证合规运营,资质齐全可查,长久稳定! 五一限时多重福利同步开启: ✅ 香港 2 核 2G 云服务器超值拼团,低价入手团长免费 ✅ 4 核 4G 多机房年付拼团,性价比拉满 ✅ 内蒙古新区限时 7 折(zeyuyunnmg)特惠,专属优惠码锁价续费 ✅ 全站通用 75 折优惠,老用户充值享专属赠金 官方站点:zeyuyun.com 合规资质齐全|售后有保障|活动限时错过不再有
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意