Docker Compose
Docker Compose
Docker Compose是什么
Docker Compose 是一个用于定义和运行多容器 Docker 应用的工具。通过一个 YAML 格式的配置文件(docker-compose.yml),您可以统一管理多个容器的配置(如服务依赖、网络、存储卷等),并通过简单命令一键启动或停止整个应用栈。
核心功能:
单文件配置:用 YAML 文件定义所有服务、网络、卷。
一键启停:通过一条命令启动或销毁整个应用环境。
服务依赖管理:自动处理容器启动顺序(如先启动数据库再启动 Web 服务)。
环境隔离:支持开发、测试、生产环境的不同配置。
注意
由于 Docker 官方已将 Compose 集成到 CLI 中,推荐使用
docker compose替代旧的docker-compose
Docker Compose 配置文件
基础结构示例
1 | |
关键配置项说明
| 配置项 | 说明 |
|---|---|
version | 指定 Compose 文件格式版本(常用 3.x)。 |
services | 定义所有需要运行的容器服务,每个服务需配置镜像、端口、卷等。 |
image | 指定容器使用的镜像(如 nginx:latest)。 |
ports | 映射宿主机端口到容器端口(格式:"宿主机端口:容器端口")。 |
volumes | 挂载宿主机目录或命名卷到容器路径(如 ./data:/app/data)。 |
environment | 设置容器内的环境变量(支持键值对或列表)。 |
depends_on | 定义服务启动顺序(例如 Web 服务依赖数据库服务先启动)。 |
networks | 自定义容器网络(默认所有服务加入同一网络,可通过服务名互相通信)。 |
常用命令
1. 启动服务
1 | |
2. 停止并清理
1 | |
重启
1 | |
3. 查看服务状态
1 | |
4. 管理单个服务
1 | |
5. 扩展服务实例
1 | |
高级技巧
1. 多环境配置
- 使用多个 Compose 文件(如
docker-compose.prod.yml)覆盖默认配置:1
docker-compose -f docker-compose.yml -f docker-compose.prod.yml up -d
2. 变量替换
在 Compose 文件中使用环境变量:
1 | |
3. 健康检查
定义服务健康检查策略:
1 | |
Note
更新容器
- 修改
docker-compose.yml后,运行:1
docker-compose up -d --build
数据持久化失败?
- 确保使用命名卷(如
mysql_data:/var/lib/mysql)或正确挂载宿主机路径。
服务间通信问题?
- 使用服务名(如
db)代替 IP 地址,Compose 会自动解析服务名到容器 IP。
Docker Compose
https://www.oikiou.top/2025/60641507/