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常见字段


字段说明
versionCompose 文件版本(推荐 3.8)
services定义各个容器(服务)
build指定 Dockerfile 路径及构建参数
image使用现成镜像
ports端口映射 "宿主机:容器"
volumes挂载卷或主机目录
environment设置环境变量
env_file从文件加载环境变量
depends_on控制启动顺序(不等待就绪)
networks自定义网络,实现服务发现
restart重启策略(no/always/unless-stopped/on-failure)
healthcheck定义健康检查
deploySwarm 模式部署配置(生产环境)




评论(共0条)