docker-compose是 Docker 生态中的一个工具,用于简化多容器应用的定义、配置和运行。它通过单个配置文件(docker-compose.yml)管理多个容器之间的依赖关系、网络、卷等资源,使得复杂应用的部署和扩展变得更加高效和可维护。
核心功能:
定义多容器服务
通过 YAML 文件声明多个容器(称为“服务”),并定义它们之间的依赖关系(如启动顺序)。自动化环境配置
自动创建容器、网络、卷、环境变量等,避免手动执行多个docker run命令。统一管理
通过简单命令(如docker-compose up)一键启动所有服务,或通过docker-compose down一键停止并清理资源。可重复性
配置文件可共享,确保开发、测试、生产环境的一致性。
典型使用场景:
- 本地开发
:快速搭建包含数据库、后端、前端的完整开发环境。
- 微服务架构
:部署多个相互依赖的微服务。
- 持续集成/持续部署(CI/CD)
:在流水线中标准化环境部署。
示例docker-compose.yml:
version: '3'services:web:image: nginx:latestports:- "80:80"depends_on:- dbdb:image: postgres:14environment:POSTGRES_PASSWORD: examplevolumes:- postgres_data:/var/lib/postgresql/datavolumes:postgres_data:此配置定义了两个服务:web(Nginx)和db(PostgreSQL),并声明了依赖关系和数据卷。
常用命令:
docker-compose up:启动服务。
docker-compose down:停止并删除容器、网络等。
docker-compose build:构建自定义镜像。
docker-compose logs:查看容器日志。
与 Docker 的关系:
- Docker
:管理单个容器的生命周期。
- docker-compose
:管理多容器的协同工作,是 Docker 生态的补充工具。
总结来说,docker-compose通过声明式配置简化了多容器应用的复杂性,是 Docker 用户部署和管理复杂应用的必备工具。