宝塔Docker管理器部署AI中转
很多朋友在搭建 AI 应用时需要中转 API 请求,但一提到 Docker 就发怵。
其实借助宝塔面板自带的 Docker 管理器,你可以像安装软件一样轻松拉取镜像、创建容器,完全不用敲复杂命令。
今天我们就以最常见的 AI 中转项目为例,一步步跑通整个过程。
准备工作:检查宝塔与Docker环境
在开始前,确认你的宝塔面板版本不低于 8.x(当前主流版本均可),并且已经登录面板后台。
打开左侧菜单栏的“软件商店”,在搜索框输入“Docker”。
- 如果看到“Docker管理器”未安装,点击安装,等待完成即可。建议把版本选为“最新稳定版”。
- 安装完成后,左侧菜单会出现“Docker”分类,点击进入就能看到容器、镜像、网络等管理页面。
- 另外,检查服务器内存至少 512MB(如果中转量不大,1GB 以下也可以跑),磁盘剩余空间大于 5GB(镜像和日志会占用)。
拉取AI中转镜像并创建第一个容器
这里我们选择一个常用的开源 AI 中转项目(比如 one-api 或 new-api),两者操作几乎一样。
打开宝塔的 Docker 管理器,点击“镜像管理” -> “拉取镜像”。
- 在镜像名称中输入:
justsong/one-api(以 one-api 为例,如果使用 new-api 则替换为new-api对应的镜像名)。 - 标签保持默认
latest,点击确定。宝塔会自动从 Docker Hub 拉取,大概需要几十秒到几分钟,视网速而定。
拉取完成后,点击“容器” -> “创建容器”:
- 镜像:选择刚才拉取的镜像
justsong/one-api:latest。 - 容器名称:自定义,比如
ai-proxy。 - 端口映射:容器内部默认端口是 3000(one-api 默认),你需要映射到服务器的一个端口,比如
3000:3000。如果 3000 被占用,可以改成18000:3000等。 - 环境变量:这是关键。点击“添加环境变量”,至少需要设置:
SESSION_SECRET:随便填一个随机字符串,用于会话加密。SQLITE_PATH:可默认留空(自动使用默认 SQLite),或指定路径如/data/one-api.db。- 如果项目要求
API_KEY(比如用于校验来源),按需添加。
- 数据持久化:建议挂载一个本地目录到容器内的
/data或/app/data,这样容器删除后配置不丢失。比如:主机目录/www/wwwroot/one-api-data-> 容器目录/data。 - 其他选项保持默认,点击确认创建。
避坑指南:新手最容易碰到的几个问题
问题1:创建容器后访问不了
- 检查宝塔“安全”菜单中是否放行了你映射的外网端口(比如 3000 或 18000)。别忘了还要在云服务器控制台(如果使用云厂商)的安全组里添加规则。
问题2:容器反复重启
- 进入容器日志查看:在 Docker 管理器的容器列表点击“日志”。常见原因:环境变量缺少
SESSION_SECRET、端口被占用、内存不足。若内存不足,可尝试降低容器内存限制(在创建时高级选项中可以设置)。
问题3:拉取镜像超时
- 如果 Docker Hub 镜像拉取慢,可以修改宝塔 Docker 管理器中的镜像加速器。推荐使用各云厂商提供的加速地址(如阿里云、中科大)。具体操作:进入 Docker 管理器 -> 设置 -> 镜像加速,填入加速地址,保存后重试。
问题4:数据丢失
- 务必添加数据卷挂载!不挂载的话,容器删除后所有配置和 key 都会消失。如果已经创建了容器,可以停止后重新创建,并挂载之前存放数据的主机目录。
效果验证:确认中转服务正常响应
部署完成后,在浏览器访问 http://你的服务器IP:映射端口,比如 http://1.2.3.4:18000。
如果看到 one-api 的登录页面,说明服务启动成功。
你也可以直接用命令行测试中转接口是否正常工作(在服务器 SSH 中执行):
curl -X POST http://127.0.0.1:18000/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer 你的中转API_KEY" \
-d '{"model": "gpt-3.5-turbo", "messages": [{"role": "user", "content": "Hello"}]}'
如果返回正常的 JSON 结果(包含 choices 字段),则代表中转工作正常。
高频问题解答
Q:一定要用 one-api 吗?有没有其他推荐?
A:市面上还有 new-api、LiteLLM 等,操作步骤完全一致,只需更换镜像名和端口即可。本文以 one-api 为例是因为它文档齐全且稳定。
Q:我想用 MySQL 代替 SQLite 怎么配置?
A:在环境变量中添加 MYSQL_HOST、MYSQL_PORT、MYSQL_DB 等字段,同时确保宝塔中已运行 MySQL 服务。详情可参考官方文档。
Q:部署后如何设置访问域名?
A:可以使用宝塔“网站”功能反向代理!新建一个站点,设置反向代理目标为 http://127.0.0.1:3000(或你的映射端口),并开启 SSL 即可。
总结
通过宝塔 Docker 管理器部署 AI 中转,本质就是“拉镜像→配端口→填环境→挂载目录”四个步骤。
初次部署可能会遇到端口、权限或镜像拉取的小问题,对照上面的避坑点基本都能快速解决。
如果你在部署过程中遇到本文未覆盖的报错,建议先查看容器日志,大多问题都能从日志中定位。
希望这篇教程能帮你顺利跑通第一个 AI 中转服务。