🐳 Docker Compose 实战教程(含完整 Nginx 案例 + 配置项详解)
适合读者:开发者、后端工程师、运维工程师、初学者
环境要求:CentOS 9 + Docker 已安装
教程亮点:实战驱动、配置项详解、挂载说明、可直接复制使用
标签:#Docker #DockerCompose #运维实战 #Nginx部署
🧩 一、什么是 Docker Compose?
Docker Compose 是 Docker 官方推出的 多容器应用编排工具,允许你使用一份 docker-compose.yml
文件,定义多个服务、网络、卷,并通过一条命令统一启动和管理整个应用栈。
📦 二、安装准备(CentOS 9 已默认集成)
在 CentOS 9 中,安装 Docker 后 Compose 插件默认集成为 docker compose
(注意是空格,不是旧版本的 docker-compose
):
docker compose version
输出示例:
Docker Compose version v2.38.2
无需额外安装 Python 版本!
📁 三、Compose 核心语法结构说明
以下是 Compose 文件结构的总览:
version: "3.9" # 指定 Compose 文件语法版本(推荐使用 3.9)
services: # 定义所有容器服务
服务名:
image: # 使用的镜像
build: # 从 Dockerfile 构建
container_name: 指定容器名
ports: # 端口映射(宿主:容器)
volumes: # 数据卷挂载
environment: # 环境变量
depends_on: # 启动顺序依赖
networks: # 加入的网络名
volumes: # 定义数据卷(可选)
networks: # 定义网络(可选)
🎯 四、Nginx 实战案例(含挂载配置)
下面通过一个最常见的场景 —— 使用 Nginx 搭建一个静态站点服务,来全面演示 Compose 实战。
4.1 项目目录结构如下:
nginx-compose-demo/
├── docker-compose.yml
└── html/
└── index.html
4.2 准备静态网页内容
html/index.html
示例:
<!DOCTYPE html>
<html>
<head><title>Docker Compose Nginx</title></head>
<body>
<h1>Hello from Nginx + Docker Compose!</h1>
</body>
</html>
4.3 编写 docker-compose.yml
version: "3.9"
services:
nginx:
image: nginx:stable
container_name: nginx_compose_demo
ports:
- "8080:80" # 将宿主机 8080 映射到容器的 80 端口
volumes:
- ./html:/usr/share/nginx/html:ro # 将本地 html 挂载到 nginx 容器目录
restart: unless-stopped # 容器异常退出将自动重启
🔎 配置说明:
image
: 使用官方 nginx 稳定版镜像ports
: 本地访问为http://虚拟机ip:8080
volumes
: 将宿主机目录挂载到容器内静态资源目录(ro
只读)restart
: 自动重启策略,推荐使用unless-stopped
4.4 启动服务
docker compose up -d
成功后访问:
http://<你的服务器IP>:8080
即可看到页面内容。
🛠️ 五、Compose 常用配置项详解汇总
配置项 | 描述 |
---|---|
version |
Compose 文件版本(建议使用 3.9) |
services |
定义所有服务(容器) |
image |
指定镜像名称和版本 |
build |
使用 Dockerfile 构建镜像 |
container_name |
容器的自定义名称 |
ports |
端口映射(格式为 宿主:容器) |
volumes |
卷挂载:支持 bind 挂载、本地卷、命名卷 |
restart |
重启策略(如 no 、on-failure 、unless-stopped 、always ) |
environment |
环境变量设置(如数据库密码等) |
depends_on |
设置依赖关系,保证服务启动顺序 |
networks |
自定义网络配置 |
command |
容器启动后执行的命令 |
healthcheck |
健康检查配置 |
logging |
日志配置(驱动、限制等) |
📌 六、常见命令速查
命令 | 功能说明 |
---|---|
docker compose up -d |
后台启动所有服务 |
docker compose down |
停止并清理所有服务及网络/卷 |
docker compose ps |
查看当前运行的容器 |
docker compose logs -f |
实时查看日志 |
docker compose exec 服务名 bash |
进入容器内部操作 |
docker compose restart |
重启服务 |
✅ 七、清理与重建
清理所有容器/网络:
docker compose down --volumes
重建所有镜像并启动:
docker compose up --build -d
📚 八、扩展建议(下一步学习)
- ✅ 搭建 LAMP / LNMP 环境(Apache、MySQL、PHP)
- ✅ Compose 多服务依赖(如 Node.js + Redis)
- ✅ 搭配
.env
文件管理配置参数 - ✅ 配合
traefik
实现自动反向代理和 HTTPS - ✅ 与 CI/CD 系统联动(GitHub Actions、Jenkins)
📦 九、结语
Docker Compose 是容器编排的入门利器,掌握其语法与实战场景将显著提升开发效率和部署能力。本文从基础语法到实战案例,再到配置详解,覆盖了市面上 99% 的使用场景,希望对你有帮助!