7. Docker 服务编排 (Docker Compose)
创建时间:2026-05-17 13:26
长度:1768
浏览:0
评论:0
什么是?
服务编排 指自动化管理多个容器(如 Web 应用、数据库、缓存、消息队列)之间的依赖关系、网络通信、扩缩容、负载均衡等,让它们作为一个整体协同工作。
编排服务工具
Docker Compose 单机多容器
Docker Swarm 多机集群(原生 Docker)
Kubernetes (K8s) 大规模、生产级容器编排
我们下面主要是介绍Docker Compose
Docker Compose
Docker Compose是一个编排多容器分布式部署的工具,提供命令集管理容器化应用的完整开发周期,包括服务构建,启动和停止。
使用步骤:
1、 利用 Dockerfile定义运行环境镜像
2、使用docker-compose.yml定义组成应用的各服务
3、运行 docker-compose up 启动应用
Docker Compose 安装
mac
直接安装Docker Desktop 安装、里面集成了最完整的docker;包含docker 引擎、命令行客户端、Docker Compose 插件、支持自动更新和性能管理
其它的可以百度搜索、这里不过多介绍
查看是否安装成功
docker compose --version
# 或者
docker-compose --version
Docker Compose 编排服务示例
1. 创建docker-compose.yml文件
2. 编写内容(示例1:基础 Web 应用 + 数据库)
version: '3.8'
services:
app:
build: . # 使用当前目录 Dockerfile 构建镜像
ports:
- "3000:3000" # 主机端口:容器端口
environment:
- NODE_ENV=development
- DB_HOST=db # 服务名 db 作为主机名
- DB_USER=root
- DB_PASSWORD=123456
- DB_NAME=myapp
volumes:
- .:/app # 挂载代码实现热更新
- /app/node_modules # 避免覆盖容器内的依赖
depends_on:
- db # 等待 db 服务启动(但不等待就绪)
restart: unless-stopped
db:
image: mysql:8.0
ports:
- "3306:3306"
environment:
MYSQL_ROOT_PASSWORD: 123456
MYSQL_DATABASE: myapp
volumes:
- db_data:/var/lib/mysql # 命名卷持久化数据
restart: unless-stopped
volumes:
db_data: # 声明卷,Docker 自动管理docker-compose.yml常见字段
| 字段 | 说明 |
|---|---|
| version | Compose 文件版本(推荐 3.8) |
| services | 定义各个容器(服务) |
| build | 指定 Dockerfile 路径及构建参数 |
| image | 使用现成镜像 |
| ports | 端口映射 "宿主机:容器" |
| volumes | 挂载卷或主机目录 |
| environment | 设置环境变量 |
| env_file | 从文件加载环境变量 |
| depends_on | 控制启动顺序(不等待就绪) |
| networks | 自定义网络,实现服务发现 |
| restart | 重启策略(no/always/unless-stopped/on-failure) |
| healthcheck | 定义健康检查 |
| deploy | Swarm 模式部署配置(生产环境) |