
当项目变得越来越复杂 , 一个服务已经无法满足需求时 , 你可能需要同时部署数据库、后端服务、前端网页、缓存组件……这时 , 如果还一个一个手动 docker run , 简直是灾难【\uD83D\uDCCB Docker Compose 编排实战:一键部署多容器应用!】这就是 Docker Compose 登场的时机!
? 一、什么是 Docker Compose?为什么需要它?Docker Compose 是 Docker 官方推出的容器编排工具 , 用于定义和运行多容器应用 。
通过一个 docker-compose.yml 文件 , 就可以用一条命令 docker-compose up , 一次性拉起整个项目中的多个服务 , 像启动引擎一样简单 ??
? 使用 Compose 的优势:
- 一键启动/停止多个容器
- 配置集中管理 , 结构清晰
- 支持服务依赖顺序(如 DB 先启动)
- 本地开发、测试环境更轻松
- 更适合多人协作部署场景
version: \"3.9\"services:web:image: nginxports:- \"8080:80\"db:image: mysql:5.7environment:MYSQL_ROOT_PASSWORD: 123456volumes:- db_data:/var/lib/mysqlvolumes:db_data: 关键结构说明:| 字段 | 含义说明 |
| version | Compose 文件版本 |
| services | 定义多个容器服务 |
| image | 使用的镜像名 |
| build | 可选 , 使用 Dockerfile 构建镜像 |
| ports | 主机端口:容器端口映射 |
| volumes | 数据卷挂载 |
| environment | 环境变量设置 |
| depends_on | 指定依赖的服务 , 控制启动顺序 |
services:apache:image: php:7.4-apacheports:- \"8080:80\"volumes:- ./code:/var/www/htmlmysql:image: mysql:5.7environment:MYSQL_ROOT_PASSWORD: root? MEVN(MongoDB + Express + Vue + Node)适用于现代前后端分离开发架构:services:frontend:build: ./frontendports:- \"3000:80\"backend:build: ./backendports:- \"5000:5000\"depends_on:- mongomongo:image: mongoCompose 可以灵活支持不同编程语言与框架组合 , 让你更轻松实现项目整体容器化!四、实战:一键部署多容器 WordPress + MySQL我们将部署一个最常见的实际案例:WordPress + MySQL 组合 。
? 创建项目结构:
wordpress-docker/├── docker-compose.yml? 编辑docker-compose.yml:version: \"3.9\"services:wordpress:image: wordpressports:- \"8080:80\"environment:WORDPRESS_DB_HOST: db:3306WORDPRESS_DB_USER: rootWORDPRESS_DB_PASSWORD: 123456depends_on:- dbdb:image: mysql:5.7environment:MYSQL_ROOT_PASSWORD: 123456volumes:- db_data:/var/lib/mysqlvolumes:db_data:? 启动项目:docker-compose up -d打开浏览器访问 http://localhost:8080 , 你将看到熟悉的 WordPress 安装界面!? 常用 Compose 命令汇总
| 命令 | 作用说明 |
| docker-compose up -d | 后台启动所有服务 |
| docker-compose down | 停止并删除容器和网络 |
| docker-compose ps | 查看当前服务状态 |
| docker-compose logs | 查看服务日志 |
| docker-compose exec | 进入容器执行命令 |
| docker-compose restart | 重启所有服务 |
| 知识点 | 内容说明 |
| Compose 是啥? | 多容器编排工具 , 用于简化部署和管理 ? |
| 文件结构清晰 | 所有配置集中在一个 yaml 文件 |
| 一键部署 | up 和 down 就能快速搭建/清理环境 |
| 支持服务组合 | 如 LAMP、MEVN、WordPress 等多容器应用 |
推荐阅读
- \uD83C\uDF89Zabbix 7.4正式发布!开源监控再升级,体验全面提升 \uD83D\uDE80
- Docker 数据持久化最佳实践:Volume 使用全指南 \uD83D\uDCBE
- Docker 容器的 DNS 是怎么实现的!
- XLibre:Fedora 新的默认 X11 服务器?\uD83D\uDE80
- 标题:Docker 一键清盘术,释放磁盘空间不求人 \uD83E\uDDF9\uD83D\uDC33
- Docker CLI 基础命令使用指南,零基础也能秒懂 \uD83D\uDC33
- KDE Plasma 6.4 桌面环境正式发布\uD83D\uDC27
- KDE Plasma 6.3.5 将与 Debian 13 同步亮相\uD83D\uDC27
- \uD83D\uDE80Ubuntu Server 22.04修改DNS全攻略
- 苹果推出Swift驱动的macOS原生Docker替代品\uD83C\uDF1F
