Docker Compose 编排实战: 一键部署多容器应用!

  • 2025-07-09 05:54:43
  • 312

当项目变得越来越复杂,一个服务已经无法满足需求时,你可能需要同时部署数据库、后端服务、前端网页、缓存组件……这时,如果还一个一个手动 docker run,简直是灾难

这就是 Docker Compose 登场的时机!

❓ 一、什么是 Docker Compose?为什么需要它?

Docker Compose 是 Docker 官方推出的容器编排工具,用于定义和运行多容器应用。

通过一个 docker-compose.yml 文件,就可以用一条命令 docker-compose up,一次性拉起整个项目中的多个服务,像启动引擎一样简单 ⚙️

使用 Compose 的优势:

一键启动/停止多个容器

配置集中管理,结构清晰

支持服务依赖顺序(如 DB 先启动)

本地开发、测试环境更轻松

更适合多人协作部署场景

二、docker-compose.yml文件结构说明

下面是一个典型的 Compose 配置文件结构:

version: "3.9"services: web: image: nginx ports: - "8080:80" db: image: mysql:5.7 environment: MYSQL_ROOT_PASSWORD: 123456 volumes: - db_data:/var/lib/mysqlvolumes: db_data:

关键结构说明:

三、常见服务组合案例

LAMP(Linux + Apache + MySQL + PHP)

services: apache: image: php:7.4-apache ports: - "8080:80" volumes: - ./code:/var/www/html mysql: image: mysql:5.7 environment: MYSQL_ROOT_PASSWORD: root

MEVN(MongoDB + Express + Vue + Node)

适用于现代前后端分离开发架构:

services: frontend: build: ./frontend ports: - "3000:80" backend: build: ./backend ports: - "5000:5000" depends_on: - mongo mongo: image: mongo

Compose 可以灵活支持不同编程语言与框架组合,让你更轻松实现项目整体容器化!

四、实战:一键部署多容器 WordPress + MySQL

我们将部署一个最常见的实际案例:WordPress + MySQL 组合。

创建项目结构:

wordpress-docker/├── docker-compose.yml

编辑docker-compose.yml:

version: "3.9"services: wordpress: image: wordpress ports: - "8080:80" environment: WORDPRESS_DB_HOST: db:3306 WORDPRESS_DB_USER: root WORDPRESS_DB_PASSWORD: 123456 depends_on: - db db: image: mysql:5.7 environment: MYSQL_ROOT_PASSWORD: 123456 volumes: - db_data:/var/lib/mysqlvolumes: db_data:

启动项目:

docker-compose up -d

打开浏览器访问 http://localhost:8080,你将看到熟悉的 WordPress 安装界面!

️ 常用 Compose 命令汇总

总结一下