什么是 Docker?
Docker 是一个开源的容器化平台,允许开发者将应用程序及其依赖打包到一个轻量级、可移植的容器中。每个容器运行在隔离的环境中,但共享宿主机的操作系统内核。
典型用途包括:
- 构建和运行单个服务(如 Web 应用、数据库)
- 快速部署开发/测试环境
- 实现应用的一致性交付(“一次构建,到处运行”)
什么是 Docker Compose?
Docker Compose 是 Docker 官方提供的多容器编排工具。它通过一个 YAML 文件(通常为 docker-compose.yml)定义多个相互关联的服务,并一键启动整个应用栈。
典型用途包括:
- 同时管理 Web 服务、数据库、缓存等多组件应用
- 本地开发环境快速搭建(如 Nginx + PHP + MySQL)
- 简化多容器应用的配置与依赖关系
核心区别对比
| 特性 | Docker | Docker Compose |
|---|---|---|
| 管理对象 | 单个容器 | 多个容器组成的完整应用 |
| 配置方式 | 命令行参数或 Dockerfile | YAML 文件(docker-compose.yml) |
| 网络与卷 | 需手动创建和连接 | 自动创建并管理专属网络和卷 |
| 适用场景 | 单服务测试、CI/CD 构建 | 多服务本地开发、集成测试 |
总结
Docker 是容器运行的基础,而 Docker Compose 是在其之上构建的多容器管理工具。简单来说:
如果你只需要运行一个服务,用 Docker;
如果你需要同时运行多个相互依赖的服务,用 Docker Compose。
两者互补,共同构成了现代容器化开发的核心工具链。