上一篇 下一篇 分享链接 返回 返回顶部

零基础用 Docker 搭建自己的 AI 搜索服务教程

发布人:慈云数据-客服中心 发布时间:22小时前 阅读量:5

AI搜索 Docker部署教程|零基础可学

随着大模型的发展,“AI搜索”正在成为越来越多人的日常工具。传统搜索引擎主要返回网页列表,而AI搜索可以在联网检索的基础上,对搜索结果进行理解、总结、归纳,并给出更接近“答案”的内容。如果你希望自己部署一个可控、可配置、支持大模型接入的AI搜索服务,那么使用 Docker 是非常适合新手的方式。

本文将以常见的开源 AI 搜索项目部署思路为例,讲解如何通过 Docker 从零开始搭建一个 AI 搜索服务。即使你没有太多 Linux、Docker 或服务器经验,也可以按照步骤完成部署。


一、什么是 AI 搜索?

AI搜索可以简单理解为:

搜索引擎 + 大语言模型 + 结果总结

传统搜索方式通常是:

  1. 用户输入关键词;
  2. 搜索引擎返回一堆网页;
  3. 用户自己点开网页阅读、筛选信息。

AI搜索的流程更像是:

  1. 用户提出问题;
  2. 系统自动联网检索相关网页;
  3. AI读取搜索结果;
  4. 生成结构化、可读性更强的答案;
  5. 同时附带参考来源,方便用户进一步验证。

例如你搜索:

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

如果页面能够打开,说明部署成功。

如果打不开,请检查以下几点:

  1. Docker 容器是否正在运行;
  2. 服务器防火墙是否放行端口;
  3. 云服务器安全组是否开放端口;
  4. 服务本身监听端口是否正确;
  5. 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 搜索并不复杂。对于零基础用户来说,核心流程可以概括为:

  1. 准备一台 Linux 服务器;
  2. 安装 Docker 和 Docker Compose;
  3. 创建 AI 搜索项目目录;
  4. 编写或下载 docker-compose.yml
  5. 配置大模型 API Key;
  6. 启动容器;
  7. 开放端口并访问页面;
  8. 根据需要绑定域名和 HTTPS;
  9. 定期更新和维护。

AI搜索的真正价值在于把“查资料”和“读资料”的过程合并起来,让用户更快获得结构化答案。自建 AI 搜索服务不仅可以提升使用体验,还能增强数据可控性,避免完全依赖第三方平台。

如果你是新手,建议先不要追求复杂配置,可以先使用云端大模型 API 跑通整个流程。等部署成功后,再逐步尝试接入 SearXNG、本地模型、权限认证、HTTPS、反向代理等功能。只要理解了 Docker Compose 的基本用法,后续部署其他 AI 工具也会变得更加轻松。

目录结构
全文