AI Agent Docker Compose部署:单机多服务编排

📘 教程 2026-07-17 · 更新于 2026-08-27 约 2 分钟阅读

AI Agent Docker Compose部署:单机多服务编排

💡 你将学到

AI Agent Docker Compose部署:单机多服务编排

📜 目录

AI Agent Docker Compose部署:单机多服务编排

一个正经的Agent系统很少只有一个进程:API服务、向量库、缓存、任务队列、模型运行器,往往要五六个服务一起跑。手动一个个启动既容易漏又难管理。Docker Compose用一份YAML声明所有服务,一条命令拉起、一条命令停止,是单机部署的事实标准。这篇给出一套可以直接抄的完整配置。

一、为什么用Compose

方案 优点 缺点
裸进程(systemd) 无额外依赖 依赖顺序自己管、环境不一致
单个Docker容器 环境隔离 多服务时启动顺序、网络、日志全靠手
Docker Compose 一份文件管全部、可复现 只适合单机(多机用K8s)

二、目录结构

my-agent/
├── docker-compose.yml
├── .env                    # 密钥、端口等配置
└── agent/
    ├── Dockerfile
    └── app.py

三、完整的docker-compose.yml

services:
  api:                                # Agent API服务
    build: ./agent
    ports: ["8000:8000"]
    env_file: .env
    depends_on:
      redis:
        condition: service_healthy
      postgres:
        condition: service_healthy
    restart: unless-stopped

  redis:                              # 缓存 + 限流计数
    image: redis:7-alpine
    volumes: ["redis-data:/data"]
    healthcheck:
      test: ["CMD", "redis-cli", "ping"]
      interval: 5s
      retries: 5

  postgres:                           # 业务数据 + 向量数据
    image: postgres:16-alpine
    environment:
      POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
    volumes: ["pg-data:/var/lib/postgresql/data"]
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U postgres"]
      interval: 5s
      retries: 5

  ollama:                             # 本地模型(可选)
    image: ollama/ollama
    volumes: ["ollama-data:/root/.ollama"]
    ports: ["11434:11434"]

volumes:
  redis-data:
  pg-data:
  ollama-data:

关键点:

四、常用命令

命令 作用
docker compose up -d 后台启动全部服务
docker compose logs -f api 跟踪某个服务的日志
docker compose ps 查看各服务状态
docker compose restart api 重启单个服务
docker compose pull && docker compose up -d 升级镜像
docker compose down 停止并删除容器(数据卷保留)

五、生产化注意

常见问题

Q:Ollama要放进Compose吗? A:推荐。容器化后换机器部署不用重装依赖,模型文件存在volume里,重建容器不丢。

Q:端口冲突怎么办? A:改映射左边端口,如 "8001:8000";或者API服务不暴露端口,只在Compose内部网络里互相访问。

Q:Compose和K8s怎么选? A:单机或两三台机器用Compose足够;要自动扩容、跨机器调度再上Kubernetes,学习成本高一个量级。

Q:Windows/Mac能跑吗? A:Docker Desktop直接支持,注意文件挂载性能差异;生产环境建议Linux服务器。

注:镜像标签(redis:7-alpine等)随版本更新,生产环境建议锁定具体版本号。

相关文章

相关文章
2026-08-01
OpenRouter教程:一个API Key用所有LLM
2026-07-19
MCP协议详解:让AI连接一切工具的开放标准
2026-07-19
开源TTS语音合成:Edge TTS和ChatTTS怎么选

本站文章由编辑人工撰写,收录的工具均经过实测或公开资料核验。文中链接指向工具官网或 GitHub 仓库,仅作信息参考,不构成付费推广。

💬 评论 (0)

暂无评论,来说两句吧~

登录后评论