零基础用 Docker 搭建自己的 AI 搜索服务教程
AI搜索 Docker部署教程|零基础可学
随着大模型的发展,“AI搜索”正在成为越来越多人的日常工具。传统搜索引擎主要返回网页列表,而AI搜索可以在联网检索的基础上,对搜索结果进行理解、总结、归纳,并给出更接近“答案”的内容。如果你希望自己部署一个可控、可配置、支持大模型接入的AI搜索服务,那么使用 Docker 是非常适合新手的方式。
本文将以常见的开源 AI 搜索项目部署思路为例,讲解如何通过 Docker 从零开始搭建一个 AI 搜索服务。即使你没有太多 Linux、Docker 或服务器经验,也可以按照步骤完成部署。
一、什么是 AI 搜索?
AI搜索可以简单理解为:
搜索引擎 + 大语言模型 + 结果总结
传统搜索方式通常是:
- 用户输入关键词;
- 搜索引擎返回一堆网页;
- 用户自己点开网页阅读、筛选信息。
AI搜索的流程更像是:
- 用户提出问题;
- 系统自动联网检索相关网页;
- AI读取搜索结果;
- 生成结构化、可读性更强的答案;
- 同时附带参考来源,方便用户进一步验证。
例如你搜索:
Docker 如何部署 AI 搜索?
传统搜索引擎可能返回很多教程链接,而 AI 搜索会直接整理出部署步骤、命令、配置说明和常见问题。
二、为什么推荐用 Docker 部署?
对于零基础用户来说,直接在服务器上手动安装各种运行环境,往往比较麻烦。比如有些项目需要 Node.js,有些需要 Python,有些还需要数据库、Redis 或搜索组件。如果手动配置,容易出现版本不兼容、依赖缺失、端口冲突等问题。
Docker 的优势在于:
- 环境隔离:不会污染服务器原有环境;
- 部署简单:通常几条命令即可启动;
- 方便迁移:换服务器时复制配置即可;
- 便于管理:启动、停止、更新都很方便;
- 适合新手:不用深入理解复杂依赖。
你可以把 Docker 理解为一个“应用打包盒子”。开发者已经把程序运行所需的环境打包好了,你只需要把这个盒子运行起来即可。
三、准备工作
在正式开始之前,你需要准备以下内容。
1. 一台服务器
推荐配置:
| 项目 | 建议配置 |
|---|---|
| 系统 | Ubuntu 20.04 / Ubuntu 22.04 / Debian 11+ |
| CPU | 1核及以上 |
| 内存 | 1GB以上,建议2GB或更高 |
| 硬盘 | 10GB以上 |
| 网络 | 可访问外网 |
如果你只是本地测试,也可以在自己的电脑上安装 Docker Desktop。
2. 一个 SSH 工具
如果你使用的是云服务器,需要通过 SSH 登录服务器。
Windows 用户可以使用:
- Windows Terminal
- PowerShell
- Xshell
- MobaXterm
- FinalShell
macOS / Linux 用户可以直接使用终端。
登录命令示例:
ssh root@你的服务器IP
例如:
ssh root@123.123.123.123
首次登录可能会提示:
Are you sure you want to continue connecting?
输入:
yes
然后输入服务器密码即可。
3. 一个大模型 API Key
AI搜索通常需要接入大语言模型,例如:
- OpenAI API
- Claude API
- Gemini API
- DeepSeek API
- 通义千问 API
- 智谱 GLM API
- 本地 Ollama 模型
如果你只是想先跑通流程,建议优先选择兼容 OpenAI 接口格式的模型服务,因为很多AI搜索项目都支持 OpenAI-compatible API。
四、安装 Docker
以下以 Ubuntu / Debian 系统为例。
1. 更新系统软件包
apt update
如果你不是 root 用户,命令前面需要加 sudo:
sudo apt update
2. 安装基础工具
apt install -y curl wget git
3. 使用官方脚本安装 Docker
curl -fsSL https://get.docker.com | bash
安装完成后,查看 Docker 版本:
docker version
如果能看到 Client 和 Server 信息,说明 Docker 安装成功。
4. 设置 Docker 开机自启
systemctl enable docker
systemctl start docker
查看 Docker 状态:
systemctl status docker
如果看到 active (running),表示 Docker 正在运行。
五、安装 Docker Compose
现在新版 Docker 通常已经内置了 Compose 插件,可以直接使用:
docker compose version
如果能显示版本号,例如:
Docker Compose version v2.x.x
说明已经可用。
如果提示没有该命令,可以安装:
apt install -y docker-compose-plugin
再次检查:
docker compose version
六、选择 AI 搜索项目
目前开源社区里有不少 AI 搜索项目,例如:
- Perplexica
- SearXNG + LLM 总结
- Search with AI
- Open WebUI + 搜索插件
- AnythingLLM + Web Search
- 自建 RAG 搜索系统
对于零基础用户,推荐选择支持 Docker Compose 的项目,因为部署最简单。本文采用通用 Docker Compose 部署方式讲解,你可以根据项目文档替换镜像名称、环境变量和端口。
下面我们以一个典型的 AI 搜索服务结构为例:
AI搜索前端/后端服务
|
| 调用
v
大模型 API
|
| 联网检索
v
搜索引擎或搜索服务
有些项目会内置搜索能力,有些项目需要额外配置 SearXNG、Tavily、Serper、Bing Search API 等搜索接口。
七、创建项目目录
建议把所有 Docker 项目都放在 /opt 目录下,便于管理。
mkdir -p /opt/ai-search
cd /opt/ai-search
查看当前目录:
pwd
应该显示:
/opt/ai-search
八、编写 Docker Compose 配置文件
创建 docker-compose.yml 文件:
nano docker-compose.yml
写入以下示例配置:
services:
ai-search:
image: your-ai-search-image:latest
container_name: ai-search
restart: unless-stopped
ports:
- "3000:3000"
environment:
- NODE_ENV=production
- OPENAI_API_KEY=你的API_KEY
- OPENAI_BASE_URL=https://api.openai.com/v1
- MODEL_NAME=gpt-4o-mini
- SEARCH_PROVIDER=searxng
- SEARXNG_URL=http://searxng:8080
depends_on:
- searxng
searxng:
image: searxng/searxng:latest
container_name: searxng
restart: unless-stopped
ports:
- "8080:8080"
environment:
- BASE_URL=http://你的服务器IP:8080/
- INSTANCE_NAME=AI Search SearXNG
注意:上面的
your-ai-search-image:latest是示例镜像名。实际部署时,请替换成你所使用的 AI 搜索项目官方文档提供的镜像名称。
如果你使用的是某个具体开源项目,通常它会提供类似下面的命令:
git clone 项目地址
cd 项目目录
docker compose up -d
或者提供已经写好的 docker-compose.yml 文件。新手建议优先使用官方提供的配置,然后只修改 API Key、模型名称、端口等必要项目。
编辑完成后,按:
Ctrl + O
回车
Ctrl + X
保存并退出。
九、配置大模型 API
AI搜索能否正常回答,关键取决于大模型配置是否正确。
在上面的配置中,这几项非常重要:
- OPENAI_API_KEY=你的API_KEY
- OPENAI_BASE_URL=https://api.openai.com/v1
- MODEL_NAME=gpt-4o-mini
1. 使用 OpenAI 官方接口
如果你使用 OpenAI 官方 API,可以这样配置:
- OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxx
- OPENAI_BASE_URL=https://api.openai.com/v1
- MODEL_NAME=gpt-4o-mini
2. 使用兼容 OpenAI 格式的第三方接口
很多模型服务提供 OpenAI 兼容接口,例如:
- OPENAI_API_KEY=你的密钥
- OPENAI_BASE_URL=https://你的服务商地址/v1
- MODEL_NAME=deepseek-chat
或者:
- OPENAI_API_KEY=你的密钥
- OPENAI_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1
- MODEL_NAME=qwen-plus
不同服务商的模型名不一样,需要查看对应平台文档。
3. 使用本地 Ollama
如果你想在本地运行模型,可以部署 Ollama。不过需要注意,本地模型对服务器配置要求较高,尤其是大模型通常需要较大的内存和显存。
Ollama 示例配置可能类似:
- OPENAI_BASE_URL=http://ollama:11434/v1
- OPENAI_API_KEY=ollama
- MODEL_NAME=qwen2.5:7b
但是具体是否支持,要看你所使用的 AI 搜索项目是否兼容 Ollama。
十、启动 AI 搜索服务
在 /opt/ai-search 目录下执行:
docker compose up -d
参数说明:
docker compose:使用 Compose 管理多个容器;up:启动服务;-d:后台运行。
查看容器状态:
docker ps
如果看到类似:
ai-search Up
searxng Up
说明服务已经启动。
查看日志:
docker logs -f ai-search
如果没有明显报错,通常说明运行正常。
十一、访问 AI 搜索页面
假设你的服务器 IP 是:
123.123.123.123
并且 AI 搜索服务映射端口是 3000,那么浏览器访问:
http://123.123.123.123:3000
如果页面能够打开,说明部署成功。
如果打不开,请检查以下几点:
- Docker 容器是否正在运行;
- 服务器防火墙是否放行端口;
- 云服务器安全组是否开放端口;
- 服务本身监听端口是否正确;
- docker-compose.yml 中端口映射是否正确。
十二、开放服务器端口
很多云服务器默认不会开放所有端口。即使 Docker 容器运行正常,浏览器也可能访问不了。
1. Ubuntu 防火墙放行端口
如果你启用了 UFW,可以执行:
ufw allow 3000
ufw allow 8080
ufw reload
查看状态:
ufw status
2. 云服务器安全组
如果你使用阿里云、腾讯云、华为云、AWS、Oracle Cloud 等云服务器,还需要到云平台控制台开放安全组端口。
入站规则示例:
| 类型 | 协议 | 端口 | 来源 |
|---|---|---|---|
| 自定义 TCP | TCP | 3000 | 0.0.0.0/0 |
| 自定义 TCP | TCP | 8080 | 0.0.0.0/0 |
如果只是自己使用,可以把来源限制为你的本地公网 IP,这样更安全。
十三、绑定域名访问
如果你有域名,可以把域名解析到服务器 IP。
例如:
search.example.com -> 123.123.123.123
然后使用 Nginx 反向代理,把域名转发到 AI 搜索服务端口。
1. 安装 Nginx
apt install -y nginx
2. 创建配置文件
nano /etc/nginx/conf.d/ai-search.conf
写入:
server {
listen 80;
server_name search.example.com;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
把 search.example.com 替换成你的真实域名。
3. 检查 Nginx 配置
nginx -t
如果显示:
syntax is ok
test is successful
说明配置正确。
4. 重载 Nginx
systemctl reload nginx
现在可以访问:
http://search.example.com
十四、配置 HTTPS 证书
如果你希望使用 HTTPS,可以安装 Certbot 自动申请免费证书。
1. 安装 Certbot
apt install -y certbot python3-certbot-nginx
2. 申请证书
certbot --nginx -d search.example.com
根据提示输入邮箱、同意协议即可。
完成后访问:
https://search.example.com
Certbot 通常会自动配置证书续期,可以检查:
certbot renew --dry-run
十五、常见问题排查
1. 页面打不开
先检查容器状态:
docker ps
如果容器没启动,查看日志:
docker logs ai-search
常见原因包括:
- 镜像名称写错;
- 环境变量配置错误;
- 端口被占用;
- API Key 不正确;
- 依赖服务未启动。
2. 端口被占用
如果启动时报错端口冲突,例如:
bind: address already in use
说明端口已经被其他程序占用。
查看端口占用:
ss -tulnp | grep 3000
你可以修改 docker-compose.yml:
ports:
- "3001:3000"
然后访问:
http://服务器IP:3001
修改后重启:
docker compose down
docker compose up -d
3. AI 无法回答
如果页面能打开,但提问后报错,通常是模型接口问题。
请检查:
- API Key 是否正确;
- Base URL 是否正确;
- 模型名称是否存在;
- 账户余额是否充足;
- 服务器是否能访问模型服务;
- 项目是否支持该模型接口格式。
可以在服务器上测试连通性:
curl https://api.openai.com/v1/models
如果你使用第三方接口,把地址替换为对应服务商的 API 地址。
4. 搜索结果为空
如果 AI 能回答,但没有联网搜索结果,可能是搜索服务配置问题。
检查 SearXNG 是否正常:
docker logs searxng
浏览器访问:
http://服务器IP:8080
如果 SearXNG 页面打不开,需要检查端口、防火墙和容器状态。
5. 回答速度很慢
AI搜索速度受多个因素影响:
- 搜索引擎响应速度;
- 模型接口速度;
- 服务器网络质量;
- 模型本身推理速度;
- 是否使用本地大模型;
- 搜索结果数量设置是否过多。
如果你使用本地模型,低配置服务器可能会非常慢。新手建议先使用云端 API 跑通流程。
十六、更新 AI 搜索服务
如果使用 Docker Compose 部署,更新通常比较简单。
进入项目目录:
cd /opt/ai-search
拉取最新镜像:
docker compose pull
重新启动:
docker compose up -d
清理旧镜像:
docker image prune -f
如果你的项目是通过 Git 克隆的,还需要先更新代码:
git pull
docker compose up -d --build
十七、停止和重启服务
1. 停止服务
docker compose down
2. 启动服务
docker compose up -d
3. 重启服务
docker compose restart
4. 查看日志
docker compose logs -f
查看指定容器日志:
docker logs -f ai-search
十八、安全建议
AI搜索服务如果直接暴露到公网,需要注意安全问题。
建议做到以下几点:
1. 不要公开敏感配置
不要把 API Key 写到公开仓库,也不要把配置文件随意上传到网上。
2. 添加访问认证
如果 AI 搜索项目本身支持账号密码,请开启登录功能。如果不支持,可以通过 Nginx Basic Auth 增加访问密码。
安装工具:
apt install -y apache2-utils
创建密码文件:
htpasswd -c /etc/nginx/.htpasswd admin
然后在 Nginx 配置中添加:
auth_basic "AI Search";
auth_basic_user_file /etc/nginx/.htpasswd;
重载 Nginx:
nginx -t
systemctl reload nginx
3. 限制后台端口
如果你已经通过域名和 Nginx 访问服务,可以考虑不要把 Docker 服务端口直接暴露到公网。
例如将:
ports:
- "3000:3000"
改为:
ports:
- "127.0.0.1:3000:3000"
这样外部无法直接通过 服务器IP:3000 访问,只能通过 Nginx 代理访问。
4. 定期更新
定期执行:
apt update && apt upgrade -y
docker compose pull
docker compose up -d
保持系统和镜像更新,减少安全风险。
十九、推荐的目录结构
为了方便长期维护,建议这样组织文件:
/opt/ai-search
├── docker-compose.yml
├── .env
├── data
└── logs
其中 .env 用来保存敏感配置,例如 API Key。
示例 .env:
OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxx
OPENAI_BASE_URL=https://api.openai.com/v1
MODEL_NAME=gpt-4o-mini
然后在 docker-compose.yml 中引用:
environment:
- OPENAI_API_KEY=${OPENAI_API_KEY}
- OPENAI_BASE_URL=${OPENAI_BASE_URL}
- MODEL_NAME=${MODEL_NAME}
这样配置更清晰,也更方便维护。
二十、总结
通过 Docker 部署 AI 搜索并不复杂。对于零基础用户来说,核心流程可以概括为:
- 准备一台 Linux 服务器;
- 安装 Docker 和 Docker Compose;
- 创建 AI 搜索项目目录;
- 编写或下载
docker-compose.yml; - 配置大模型 API Key;
- 启动容器;
- 开放端口并访问页面;
- 根据需要绑定域名和 HTTPS;
- 定期更新和维护。
AI搜索的真正价值在于把“查资料”和“读资料”的过程合并起来,让用户更快获得结构化答案。自建 AI 搜索服务不仅可以提升使用体验,还能增强数据可控性,避免完全依赖第三方平台。
如果你是新手,建议先不要追求复杂配置,可以先使用云端大模型 API 跑通整个流程。等部署成功后,再逐步尝试接入 SearXNG、本地模型、权限认证、HTTPS、反向代理等功能。只要理解了 Docker Compose 的基本用法,后续部署其他 AI 工具也会变得更加轻松。