网站首页 > 开源技术 正文
当项目变得越来越复杂,一个服务已经无法满足需求时,你可能需要同时部署数据库、后端服务、前端网页、缓存组件……这时,如果还一个一个手动 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/mysql
volumes:
db_data:
关键结构说明:
字段 | 含义说明 |
version | Compose 文件版本 |
services | 定义多个容器服务 |
image | 使用的镜像名 |
build | 可选,使用 Dockerfile 构建镜像 |
ports | 主机端口:容器端口映射 |
volumes | 数据卷挂载 |
environment | 环境变量设置 |
depends_on | 指定依赖的服务,控制启动顺序 |
三、常见服务组合案例
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/mysql
volumes:
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 等多容器应用 |
猜你喜欢
- 2025-09-29 在 Red Hat Linux 搭建 Podman 的完整实战教程
- 2025-09-29 10 分钟上手 Docker Compose:从零到一键部署实战
- 2025-09-29 linux 设置环境变量方法_linux设置环境变量方法
- 2025-09-29 如何在 Ubuntu 24.04 LTS Linux 上安装 MySQL 服务器
- 2025-09-29 Kali与编程:黑客如何搭建和使用VMware和Kali Linux使用环境?
- 2025-09-29 哇塞!用 Linux 实现自动化办公,每天能省 2 小时,赶紧收藏!
- 2025-09-29 自己动手DIY一个云服务器:安装ubuntu16.04系统,部署LNMP环境
- 2025-09-29 AWS Linux2023上搭建WordPress 安装指南(一)
- 2025-09-29 AWS Linux 2023搭建WordPress 安装指南(二)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- jdk (81)
- putty (66)
- rufus (78)
- 内网穿透 (89)
- okhttp (70)
- powertoys (74)
- windowsterminal (81)
- netcat (65)
- ghostscript (65)
- veracrypt (65)
- asp.netcore (70)
- wrk (67)
- aspose.words (80)
- itk (80)
- ajaxfileupload.js (66)
- sqlhelper (67)
- express.js (67)
- phpmailer (67)
- xjar (70)
- redisclient (78)
- wakeonlan (66)
- tinygo (85)
- startbbs (72)
- webftp (82)
- vsvim (79)
本文暂时没有评论,来添加一个吧(●'◡'●)