Skip to content

Docker 服务管理 (services)

管理 Docker 后端服务的启动、停止、日志查看和镜像更新。依赖 Docker 和 Docker Compose。

核心特性

  • 🔹 服务启停: 一键启动/停止 Docker 后端服务
  • 🔹 指定服务: 支持启动或查看特定服务的日志
  • 🔹 日志查看: 实时跟踪或查看历史日志
  • 🔹 镜像更新: 拉取最新服务镜像

系统架构

services 命令 → services.js (Commander) → service-manager.js

                  ┌─────────────┬───────────────┼───────────────┐
                  ▼             ▼               ▼               ▼
               up            down             logs            pull
                  │             │               │               │
                  ▼             ▼               ▼               ▼
          docker-compose    docker-compose   docker-compose  docker-compose
              up -d            down           logs             pull
         [指定服务...]                    [-f] [--tail N]

命令参考

bash
chainlesschain services up [services...]     # 启动服务
chainlesschain services down                 # 停止所有服务
chainlesschain services logs [services...]   # 查看日志
chainlesschain services pull                 # 拉取最新镜像

子命令说明

up

启动 Docker 后端服务。可指定特定服务名称,不指定则启动全部服务。

bash
chainlesschain services up                   # 启动所有服务
chainlesschain services up ollama qdrant     # 仅启动指定服务

down

停止所有 Docker 后端服务。

bash
chainlesschain services down

logs

查看服务日志。支持实时跟踪和行数限制。

bash
chainlesschain services logs                        # 查看最近 100 行日志
chainlesschain services logs -f                     # 实时跟踪日志
chainlesschain services logs --tail 500             # 显示最近 500 行
chainlesschain services logs ollama                 # 仅查看指定服务日志
chainlesschain services logs -f ollama qdrant       # 实时跟踪多个服务
选项说明
-f, --follow实时跟踪日志输出
--tail <lines>显示最近 N 行(默认 100)

pull

拉取所有服务的最新 Docker 镜像。

bash
chainlesschain services pull

关键文件

  • packages/cli/src/commands/services.js — 命令实现
  • packages/cli/src/lib/service-manager.js — Docker/Docker Compose 操作封装

安全考虑

  • 命令执行前会检查 Docker 和 Docker Compose 的可用性
  • docker-compose.yml 文件从当前目录和 backend/docker 目录查找
  • 服务运行在 Docker 容器中,与宿主机隔离
  • 注意 Docker 端口映射可能暴露服务到网络

使用示例

场景 1:启动完整后端环境

bash
chainlesschain services up
chainlesschain services logs -f

启动所有后端服务(PostgreSQL、Redis、Ollama、Qdrant 等),并实时查看启动日志。

场景 2:仅启动 AI 相关服务

bash
chainlesschain services up ollama qdrant
chainlesschain services logs ollama

只启动 Ollama(LLM 推理)和 Qdrant(向量搜索),适合本地开发调试 AI 功能。

场景 3:更新服务镜像

bash
chainlesschain services down
chainlesschain services pull
chainlesschain services up

停止服务、拉取最新镜像后重新启动,完成版本升级。

故障排查

问题解决方案
Docker is not installed or not running安装 Docker Desktop 并确保 Docker 守护进程运行
Docker Compose is not available安装 Docker Compose,或升级 Docker Desktop(内置 Compose V2)
docker-compose.yml not found在项目根目录下运行命令,或确认 backend/docker 目录存在
服务启动后立即退出查看日志 chainlesschain services logs 获取错误详情
端口冲突检查端口占用:Ollama(11434)、Qdrant(6333)、PostgreSQL(5432)、Redis(6379)

相关文档

基于 MIT 许可发布