Docker Compose部署AI中转站:零基础完整教程
为什么用Docker Compose部署AI中转站
AI中转站的作用是把多个AI服务(如OpenAI、Claude、本地模型)的API统一到一个入口管理,实现密钥轮换、负载均衡和请求日志记录。
Docker Compose能把中转站、数据库、监控等组件一键编排启动,环境隔离、迁移方便,对新手非常友好。
本文的目标是让你用最简单的方式部署一个可用的AI中转站,不需要懂复杂架构,跟着步骤做就行。
部署前检查这几项
一台能联网的Linux服务器,推荐系统为Ubuntu 20.04以上或CentOS 7以上。
如果你用的是Windows或Mac,也可以先安装Docker Desktop,但生产环境建议用Linux。
安装Docker和Docker Compose,如果还没装,依次执行以下命令:
# 安装Docker(以Ubuntu为例)
sudo apt update && sudo apt install -y docker.io
sudo systemctl enable --now docker
# 安装Docker Compose插件(新版Docker自带)
docker compose version
# 如果提示未安装,则手动下载:
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
检验:sudo docker run hello-world 能正常输出确认消息就算成功。
一个AI中转站镜像,本文以常见的开源项目 songquanpeng/one-api(支持多种AI接口的统一管理)为例,你也可以替换成你选用的其他镜像。
分步部署:从新建文件夹到启动服务
1. 创建项目目录和配置文件
mkdir ~/ai-gateway && cd ~/ai-gateway
# 创建docker-compose.yml文件
nano docker-compose.yml
2. 编写docker-compose.yml
粘贴以下内容(按实际需求调整版本和端口):
version: '3.8'
services:
one-api:
image: songquanpeng/one-api:latest
container_name: ai-gateway
restart: always
ports:
- "3000:3000" # 映射宿主端口,可改成其他端口如8080
volumes:
- ./data:/data # 持久化数据库和日志
environment:
- TZ=Asia/Shanghai
# 如需管理密钥,在启动后再通过网页添加
注意:./data 目录会自动在宿主机创建,用来保存用户和日志数据,避免容器删除了数据丢失。
3. 启动服务
sudo docker compose up -d
这条命令会在后台拉取镜像并启动容器。
首次启动需要几十秒,可以观察日志:
sudo docker compose logs -f
看到类似 Server started on port 3000 的提示就说明启动成功了。
4. 访问面板并添加AI通道
打开浏览器,访问 http://你的服务器IP:3000。
默认管理账号密码通常是 root / 123456(不同项目有差异,请查阅对应文档)。
登录后按界面指引添加你需要的AI提供商的API密钥,如OpenAI、Azure、Gemini等。
避坑指南(新手最容易踩的雷)
端口被占用:默认3000端口如果已被其他服务占用,启动会报错。
修改 docker-compose.yml 中 ports 左边的值即可,例如改成 "8080:3000",然后 sudo docker compose down && sudo docker compose up -d 重启。
镜像拉取失败:国内服务器拉取Docker Hub镜像可能超时。
可以配置镜像加速器或改用阿里云等国内仓库。
编辑 /etc/docker/daemon.json,添加 "registry-mirrors": ["https://mirror.ccs.tencentyun.com"],重启Docker后再启动容器。
数据持久化没生效:如果容器删除后配置丢失,检查 volumes 挂载的目录权限。
建议在宿主机的 ./data 目录执行 sudo chown -R 1000:1000 ./data(部分容器内部使用UID 1000),确保写入权限。
日志爆满:AI请求量大时日志文件可能增长很快。
可以在 docker-compose.yml 中添加日志限制:
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
效果验证与日常维护
- 验证API转发:在管理面板中创建一个令牌,然后用curl测试:
curl http://你的IP:3000/v1/chat/completions \
-H "Authorization: Bearer 你生成的令牌" \
-H "Content-Type: application/json" \
-d '{"model": "gpt-3.5-turbo", "messages": [{"role": "user", "content": "Hello"}]}'
如果返回正常的AI响应,说明中转站工作正常。
- 日常操作:
- 启动:
sudo docker compose up -d - 停止:
sudo docker compose down - 查看实时日志:
sudo docker compose logs -f - 更新镜像:
sudo docker compose pull && sudo docker compose up -d - 备份数据:
~/ai-gateway/data目录下的数据库文件定期打包下载即可。
如果你在部署中遇到其他错误,先回看本文的避坑部分,或搜索具体的错误信息(如“端口占用”“权限拒绝”等)。
AI中转站部署完成后,你就能通过一个统一入口管理所有AI服务了,后续调整通道、添加用户也非常方便。