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/